Django 测试装置和内容类型

发布于 2024-12-14 10:27:15 字数 245 浏览 0 评论 0原文

我在模型中使用 django 的 ContentType 外键, 我在单元测试的装置中使用它。

因此,我必须在我的装置中对 content_type_id 进行硬编码,但 django 有时会将其初始化为不同的值,因此我的测试失败。

那么有没有一种方法可以安全地预测模型的 content_type_id 或任何其他正确的方法来处理这种情况?

I'm using django's ContentType foreign key in my model,
and I'm using it in the fixtures for unit tests.

Therefore, I have to hard-code content_type_id in my fixture, but django sometimes initializes it to a different value and thus my tests fail.

So is there a way to safely predict the content_type_id of the model or any other proper way to handle such situations?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

壹場煙雨 2024-12-21 10:27:15

使用自然键: https://docs.djangoproject.com/en/ dev/topics/serialization/#natural-keys

大多数文档都提到如何将功能添加到您自己的模型中,但是 ContentType 已经支持它们,因此只需添加 --natural-foreign 到您的 dumpdata 管理命令:

$ python manage.py dumpdata myapp --indent=4 --natural-foreign

Use natural keys: https://docs.djangoproject.com/en/dev/topics/serialization/#natural-keys

Most of the documentation refers to how to add the capability to your own models, but ContentType already supports them so just add --natural-foreign to your dumpdata management command:

$ python manage.py dumpdata myapp --indent=4 --natural-foreign
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文