我的django项目有多个具有相同模型结构的应用程序。 为了避免模型文件的复制粘贴,我写了一个generic_models文件,其中包含该结构中的抽象模型,每个应用程序都有从通用模型继承的模型。
其中两个表之间有外键。 我本来希望将外键定义为抽象模型中的字段。 问题是外键不能指向抽象表。
我如何实现这种结构?
答案 0 :(得分:0)
不确定这会有效,但至少你可以试试。 在ForeignKey定义中,使用相关的模型名称作为字符串而不是相关的模型对象,即
f_key = models.ForeignKey('your_app.Your_model')
而不是
f_key = models.ForeignKey(your_app.Your_model)
,甚至可以尝试使用'self'
。不确定这是否已实施,但它是有道理的。
另见:
https://docs.djangoproject.com/en/1.9/ref/models/fields/#lazy-relationships
https://docs.djangoproject.com/en/1.9/topics/db/models/#be-careful-with-related-name