Django中的选择性外键使用(可能带有limit_choices_to参数?)

时间:2013-10-04 06:19:04

标签: python django foreign-keys

我是Django的新手,刚刚完成了制作第一个应用教程。 我有一个关于外键的问题

在models.py中 我有两个名为Post和GroupMeeting的类。 在groupmeetings中,有一个foreignkey链接到Post类。 现在,我希望GroupMeetings只有Post项目 category = 0

在我的实施中,我调用所有帖子项目。 有没有办法使用limit_choices_to参数或其他东西过滤它? (我不太明白limit_choices_to参数是如何工作的......)

class Post(models.Model):
    date = models.DateTimeField()
    category = models.IntegerField()
    content = models.CharField(max_length=400)
    #writerId ...
    CATEGORY = (
        (0, 'MeetingPost'),
        (1, 'AnnounceBoard'),
        (2, 'FreeBoard'),
    )
    tag = models.ManyToManyField(PostTag)
    replies = models.ForeignKey(PostReply)

class GroupMeeting(models.Model):
    date = models.DateTimeField()
    placeGPS = models.FloatField()
    placeName = models.CharField(max_length=30)
    dateRepeat= models.ForeignKey(RepeatDays)
    post = models.ForeignKey(Post)

1 个答案:

答案 0 :(得分:1)

如果要限制外键的选择,请按以下步骤操作:

class GroupMeeting(models.Model):
    date = models.DateTimeField()
    placeGPS = models.FloatField()
    placeName = models.CharField(max_length=30)
    dateRepeat= models.ForeignKey(RepeatDays)
    post = models.ForeignKey(Post, limit_choices_to = {'category': 0})

只要选择不依赖于上下文,就非常简单。