我有以下两个Model类。
class Question(models.Model):
question_text = models.CharField(max_length = 100)
pub_date = models.DateTimeField('date published')
question_type = models.CharField(max_length = 100)
def __str__(self):
return self.question_text
class Choice(models.Model):
choice_text = models.CharField(max_length = 200)
votes = models.IntegerField(default = 0)
question = models.ForeignKey(Question, on_delete = models.CASCADE,related_name = 'q_choice')
def __str__(self):
return self.choice_text
我正在尝试创建问题的模型形式。
class QuestionForm(forms.ModelForm):
class Meta:
model = Question
field = ['question_test','pub_date','question_type']
我想要表格中的以下功能,首先应要求提供question_text
,pub_date
和question_type
。
如果我选择question_type
等于'SELECT_ONE_CHOICE',则应该出现一个add_choices+
按钮,并且该按钮使我们能够在文本字段框中输入n
个选项(一个接一个) ,请点击add_choices+
n
次)。并且这些选择也应反映在related_name属性q_choice
中(创建n
q_choice
和save()
question model
)。
如果我选择question_type
等于'SELECT_ALL_CHOICE',则应该发生类似的序列操作,并最终应保存QuestionForm。
稍后我可以使用单选按钮或复选框显示问题,具体取决于question_type
(我知道如何编码)
如何使用Django的模型形式完成此操作?基本上,在创建问题时,这些与表单和模型的中间交互将如何发生? 请帮助(可能需要一些代码)
谢谢!