gpt4 book ai didi

django - 从两个以上的模型创建 Django 表单

转载 作者:行者123 更新时间:2023-12-01 23:44:53 25 4
gpt4 key购买 nike

我正在构建一个测验应用程序,用户(内容创建者或作者)可以在其中创建测验(基于选择的问题及其解决方案)。

我有这些模型:

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)

并且还能够指定要在表单上显示的字段。

最佳答案

每个外键都需要一个内联表单集:

QuestionChoiceFormset = inlineformset_factory(question, choice)
QuestionAnswerFormset = inlineformset_factory(question, answer)

在您的模板中,访问字段就像访问普通的表单集/表单一样。

@Rexford 评论的链接是正确的,它与您想要的一样。您可以找到基于函数的 View 的示例,也可以基于相同的“配方”示例。

关于django - 从两个以上的模型创建 Django 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29881734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com