【发布时间】:2015-07-05 01:54:11
【问题描述】:
我正在构建一个测验应用程序,用户(内容创建者或作者)可以在其中创建测验(基于选择的问题及其解决方案)。
我有这些模型:
class question(models.Model):
text = models.TextField(max_length=512, blank=False)
author = models.OneToOneField(User)
doc = models.DateField(auto_now_add=True)
dscore = models.IntegerField()
btax = models.CharField(max_length=3)
subj = models.CharField(max_length=3)
qtype = models.CharField(max_length=1)
flag = models.CharField(max_length=16)
tags = TaggableManager()
class choice(models.Model):
text = models.CharField(max_length=64, blank=False)
ques = models.ForeignKey('question')
tags = TaggableManager()
class answer(models.Model):
text = models.TextField(max_length=512)
ques = models.ForeignKey('question')
choice = models.ForeignKey('choice')
tags = models.CharField(max_length=32)
我必须创建一个包含所有三个模型的单一表单:问题、选择、答案。我知道这可以使用内联表单集来实现,例如
from django.forms.models import inlineformset_factory
inlineformset_factory(question, choice)
不清楚的地方:如何将所有三个模型都放在这里,比如
inlineformset_factory(question, choice, answer)
并且还能够指定要在表单上显示的字段。
【问题讨论】:
-
请看这里:kevindias.com/writing/… 我确定它是您正在寻找的圣杯。我没有测试过自己,但我喜欢这种方法。它使用 CBV
标签: django django-models inline-formset