我有这个型号
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
我在迁移中有转发功能
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.
但是,这仅在运行测试时发生。否则就没有问题了。什么会导致这个问题
显然,在某些旧迁移中,
makemigration
创建的dependencies=[]
是不正确的在某些迁移中手动添加一些依赖项修复了该问题
尝试django测试工具,它被设计为能够很好地与项目协同工作,特别是与数据库和模型协同工作
每次运行测试时,Django都会构建自己的测试数据库,您可以从测试中填充项目中的对象
https://docs.djangoproject.com/en/3.2/topics/testing/
相关问题 更多 >
编程相关推荐