Django admin中的ForeignKey依赖项

时间:2014-05-12 13:37:34

标签: django django-admin

我正在使用Django 1.6.4。

我有一个与Section模型具有ManyToMany关系的TimePeriod模型。我还有Question模型,它与Section模型和TimePeriod模型具有ForeignKey关系。

我想要做的是,当选择了给定的Section时,将Question表单的Sections部分自动过滤为有效TimePeriod。< / p>

例如,如果2014 TimePeriod包含Section1和Section2,但2013 TimePeriod包含Section2和Section3,我只想在2013年Section下拉列表中显示Section2和Section3选择2014时选择了Section1和Section2。

首先,是否有任何已创建的包开箱即用?如果没有,我该怎么办才能手动设置?

谢谢!

要求提供模型定义。他们非常简单:

section.py

class Section(TimeStampedModel):
    class Meta:
        app_label = 'nps'
        ordering = ('number',)

    name = models.CharField(max_length=255)
    number = models.IntegerField()
    time_period = models.ManyToManyField('TimePeriod',
                                         related_name='sections')

timeperiod.py

class TimePeriod(TimeStampedModel, TimeFramedModel):
    class Meta:
        app_label = 'nps'

    name = models.CharField(max_length=40)

question.py

class Question(TimeStampedModel):
    class Meta:
        app_label = 'nps'
        unique_together = ('time_period', 'number',)

    time_period = models.ForeignKey('TimePeriod',
                                    related_name='questions')
    section = models.ForeignKey('Section', related_name='questions')
    page = models.IntegerField()
    number = models.CharField(max_length=20)
    name = models.TextField()
    slug = models.SlugField(editable=False)

1 个答案:

答案 0 :(得分:0)

我最终在clean()方法的管理表单中将其实现为验证。