首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django模型外键字段在测试过程中迁移时不可用

问Django模型外键字段在测试过程中迁移时不可用
EN

Stack Overflow用户
提问于 2021-05-17 14:40:32
回答 2查看 54关注 0票数 0

我有这个模型。

代码语言:javascript
复制
class TransportOrder(SomeMixin, models.Model):
    order = models.ForeignKey(
        to="orders.Order",
        on_delete=models.PROTECT,
        related_name="transport_orders",
        help_text=_("Order which was used for creating"),
        null=True,
        blank=True,
    )
    # Other fields have been removed for simplicity

我在迁移中有转发功能。

代码语言:javascript
复制
def forward(apps, schema_editor):
    TransportOrder = apps.get_model("transportorders", "TransportOrder")
    
    # There is no `order` field printed result.
    print(dir(TransportOrder))

    # I need to filter something by using `TransportOrder.order` foreign key field here. But I receive the error obviously.

由于apps.get_model函数提供的TransportOrder模型中没有order字段,因此我得到了以下错误。

django.core.exceptions.FieldError: Cannot resolve keyword 'order' into field.

然而,这只会在运行我的测试时发生。否则就没有问题了。导致此问题的原因是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-31 12:47:22

显然,在一些旧的迁移中,makemigration创建的dependencies=[]是不正确的。

在一些迁移中手动添加一些依赖项解决了这个问题。

票数 0
EN

Stack Overflow用户

发布于 2021-05-17 15:18:58

尝试django测试工具,它被设计成与项目很好地工作,特别是与数据库和模型一起工作。

每次运行测试时,Django都会构建自己的测试数据库,您可以使用项目中的对象从测试中填充。

https://docs.djangoproject.com/en/3.2/topics/testing/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67565038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档