【问题标题】:Django test fixtures and content typesDjango 测试装置和内容类型
【发布时间】:2011-12-24 13:10:24
【问题描述】:

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

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

那么有没有办法安全地预测模型的 content_type_id 或任何其他适当的方法来处理这种情况?

【问题讨论】:

    标签: django django-testing django-contenttypes


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢,ContentType 已经有get_by_natural_key(app_label, model) 的注释非常有用。
    • 谢谢,有一段时间被这个问题难住了。还需要“--natural-primary”才能进行测试。
    猜你喜欢
    • 2010-10-29
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 2011-11-15
    相关资源
    最近更新 更多