gpt4 book ai didi

python - Django 表单新手问题

转载 作者:太空狗 更新时间:2023-10-30 02:14:32 25 4
gpt4 key购买 nike

好吧,我对 Django Forms 不知所措,因为文档似乎没有完全涵盖我正在寻找的内容。至少,一旦你通过了最基本的形式,它似乎就会戛然而止。我非常愿意使用指向好的 文档的链接,或者指向涵盖该主题的好书的链接作为答案。基本上,这就是它的分解方式,我有 3 个模型(测验、问题、答案)。我有 20 个问题,每个测验有 4 个可能的答案(多项选择)。数字可能会有所不同,但您明白了。

我需要为这些项目创建一个表单,就像您在多项选择测验中所期望的那样。但是,当我在模板中手动创建表单而不是使用 django.forms 时,我得到以下信息:

以 10 为底的 int() 的无效文字:'test'

所以我想弄乱 django.forms,但我想我只是没有掌握如何从中构建适当表单的想法。非常感谢任何帮助,谢谢。

值得一提的是模型:

class Quiz(models.Model):
label = models.CharField(blank=True, max_length=400)
slug = models.SlugField()

def __unicode__(self):
return self.label

class Question(models.Model):
label = models.CharField(blank=True, max_length=400)
quiz = models.ForeignKey(Quiz)

def __unicode__(self):
return self.label

class Answer(models.Model):
label = models.CharField(blank=True, max_length=400)
question = models.ForeignKey(Question)
correct = models.BooleanField()

def __unicode__(self):
return self.label

最佳答案

是的,我不得不承认这里确实缺少文档和示例。对于您所描述的案例,这不是开箱即用的解决方案,因为它深入三层:测验->问题->答案。

Django 有 model inline formsets这解决了两层深的问题。生成所需表单所需要做的是:

  1. 加载一个测验表格(只是您模型中的一个标签文本框)
  2. 加载一个问题表单集:QuestionFormSet(queryset=Question.objects.filter(quiz=quiz))
  3. 对于每个问题,加载一个答案表单集的方式与加载问题表单集的方式大致相同
  4. 确保您以正确的顺序保存所有内容:quiz->question->answer,因为每个较低的级别都需要它上面项目的外键

关于python - Django 表单新手问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/621121/

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