我正在使用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。
首先,是否有任何已创建的包开箱即用?如果没有,我该怎么办才能手动设置?
谢谢!
要求提供模型定义。他们非常简单:
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')
class TimePeriod(TimeStampedModel, TimeFramedModel):
class Meta:
app_label = 'nps'
name = models.CharField(max_length=40)
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)
答案 0 :(得分:0)
我最终在clean()
方法的管理表单中将其实现为验证。