Python Django模型外键字段在测试期间的迁移中不可用
我有这个型号Python Django模型外键字段在测试期间的迁移中不可用,python,django,django-models,django-migrations,django-testing,Python,Django,Django Models,Django Migrations,Django Testing,我有这个型号 类传输顺序(SomeMixin,models.Model): 订单=型号。外键( to=“orders.Order”, 在_delete=models.PROTECT上, 相关的_name=“运输订单”, help_text=u(“用于创建的顺序”), 空=真, 空白=真, ) #为简单起见,其他字段已被删除 我在迁移中有转发功能 def转发(应用程序、架构编辑器): TransportOrder=apps.get_模型(“transportorders”、“TransportO
类传输顺序(SomeMixin,models.Model):
订单=型号。外键(
to=“orders.Order”,
在_delete=models.PROTECT上,
相关的_name=“运输订单”,
help_text=u(“用于创建的顺序”),
空=真,
空白=真,
)
#为简单起见,其他字段已被删除
我在迁移中有转发功能
def转发(应用程序、架构编辑器):
TransportOrder=apps.get_模型(“transportorders”、“TransportOrder”)
#没有“订单”字段打印结果。
打印(直接(运输订单))
#我需要使用“TransportOrder.order”外键字段筛选某些内容。但我显然收到了错误。
由于apps.get\u model
函数提供的TransportOrder
模型中没有order
字段,我得到了以下错误
django.core.exceptions.FieldError:无法将关键字“order”解析为字段。
但是,这仅在运行测试时发生。否则就没有问题了。是什么导致了这个问题?尝试了django测试工具,它被设计用于项目,特别是数据库和模型 每次运行测试时,Django都会构建自己的测试数据库,您可以从测试中填充项目中的对象
显然,在一些旧的迁移中,由
makemigration
创建的依赖项=[]
是不正确的
在某些迁移中手动添加一些依赖项修复了该问题。是否运行了
manage.py migrate
?是的,我确实运行了它。“这只在运行我的测试时发生”,如何运行测试?如果您的测试存在问题,您也应该将该代码添加到问题中。您是否尝试从django shell导入TransportOrder并检查是否有可用的order字段?@blondlg是的,我尝试过,并且它存在。好的,谢谢您的建议。我们肯定会考虑,但改变我们目前的工具是不可能的。因为它在我们所有的项目中都得到了广泛的应用。