2010-10-27 62 views
0

我想设计一个可以关联到Project模型,另一个X模型和其他任务模型的任务模型。显而易见的选择是一个外键,但我希望该Task模型的任何特定实例仅与这些模型类型中的一个相关联,也就是说,如果任务模型与Project模型有关系,则它不能有关系与另一个任务模型,等等。什么是最好的表达方式?谢谢。关于使用“独占”外键关系设计django模型的建议

+0

ForeignKey(unique = True)or OneToOneField()?对不起,如果我误解了你的问题。 – 2010-10-27 16:24:04

+0

是的,但unique = True只会限制特定外键的唯一性,例如Project到任务或X模型的任务,但在所有外键模型之间并不唯一。一个到现场将是相同的事情,再加上我需要其他模型具有多个Task对象的能力,但单个Task对象应该只与另一个模型相关。 – user443850 2010-10-27 17:02:09

回答

0

看一看Generic relation。它允许您在多个模型上定义一个外键。这样你的任务只与你的一个模型相关联。

0

我所做的是从我的所有模型上的基类继承,这些基类将与任务相关。任务模型使用unique = True指向ForeignKey上的基类,并且好像所有的子类都继承了这个关系。谢谢。