如何使用复合外键创建模型?

时间:2011-10-24 09:42:50

标签: python django-models postgis geodjango compound-key

任何人都知道如何使用复合外键创建一个模型到另一个模型。

e.g。

UserInfo: userId 密码,密钥,...

地理信息:ID, userId 密码,storeName,...

在上面的样本模型中。想要使用两个字段( userId,密码)将GeoInfo链接到UserInfo。

注意:我知道如何使用一个外键链接两个模型。

感谢任何指导。

UPDATES1 我找到了这篇文章 - > Django or similar for composite primary keys

不幸的是,由于要求(客户的规范)在GeoInfo中存在两个字段( UserInfo.userId,UserInfo.password ),因此我接受的答案不适用。

UPDATES2 所以看来,django不支持复合外键。任何解决方法的家伙?

1 个答案:

答案 0 :(得分:0)

什么阻止你让两个ForeignKey字段引用模型A?

e.g。

class Author(models.Model):
    name = models.CharField(max_length=50)

class Book(models.Model):
    title = models.CharField(max_length=50)
    author = models.ForeignKey(Author, related_name="primary_authors")
    co_author = models.ForeignKey(Author, related_name ="co_authors")

确保使用'related_name'来防止冲突。如果这不能回答你的问题,那么提供一个你想要做的事情的例子会有所帮助......