如何检查内部数据库结构

时间:2009-07-01 07:51:21

标签: django django-models

我是django的新手(并且没有SQL经验),所以也许没有标准的方法可以做到这一点。

因此,假设我使用http://docs.djangoproject.com/en/dev/ref/contrib/admin/#working-with-many-to-many-intermediary-models

中的乐队,人物,成员资格示例

如果我想确定,固定人和固定乐队之间最多只有一个会员资格。一个人只能拥有一个“invite_reason”和“join_date”。对于onetomany模型,是否有某种“独特”的标志。

我想我可以编写例程来检查和删除任何新例程。一个这样的例程会在哪里生存,什么叫它(cron,django信号(我还不明白))?

1 个答案:

答案 0 :(得分:2)

我可能误解了你的问题,但也许你想看看内部Meta类?

class Membership(models.Model):

    class Meta:
        unique_together = (('person'), ('group'), )

    person = models.ForeignKey(Person)
    group = models.ForeignKey(Group)
    date_joined = models.DateField()
    invite_reason = models.CharField(max_length=64)

这将添加一个人永远不能成为组成员的约束。在技​​术术语中,此表中可能永远不会存在两行,其中“person”和“group”具有相同的值。

如果你想确保只有例如PK 7的人永远不应该是PK 11两次的组成员,你应该按照你的说法真正研究Django信号,特别是pre_save钩子。