python - 如何在 Django 中创建动态创建的单选按钮表单

标签 python django

enter image description here

你好。

我是 Django 的新手 我想在 html 中创建一个类似于上图的表单。 当用户选择单选按钮时,表单应保存数据。

如何在django中实现这样一个表单(请注意用户不能选择多个答案)

最佳答案

您想使用 ChoiceFieldRadioSelect :

from django import forms

class GenderForm(forms.Form):
    CHOICES = (
        ('M', 'Male'),
        ('F', 'Female'),
    )
    choice = forms.ChoiceField(choices=CHOICES, widget=forms.RadioSelect())

记住,Django documentation is your friend !

动态变化的选择 如果您希望能够动态创建表单,使用 ModelForm 代替 forms.Form 可能是个好主意。这是一个例子:

from django.db import models
from django.forms import ModelForm
from django import forms

class Answer(models.Model):
    answer = models.CharField(max_length=100)

    def __unicode__(self):
        return self.answer

class Question(models.Model):
    title = models.CharField(max_length=100)
    answers = models.ManyToManyField('Answer')

class QuestionForm(ModelForm):
    class Meta:
        model = Question
        fields = ('title', 'answers')
        widgets = {
            'answers': forms.RadioSelect(),
        }

在您的 View 中使用指定实例实例化表单:

question = Question.objects.order_by('?')[0]
form = QuestionForm(instance=question)

然后表单将使用与该问题相关的答案(在本例中是随机选择的)并像往常一样将表单传递给模板上下文。

关于python - 如何在 Django 中创建动态创建的单选按钮表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5907193/

相关文章:

python - 将 numpy 数组写入文件字节顺序问题?

python - 使用 Python dicts 进行静态类型分析

django - “QuerySet”对象没有属性错误,尝试获取 ManyToMany 字段的相关数据

python - 如何在 Django 中设置 Bootstrap

android - 使用 python 创建一个在后台运行的 android 服务

python - Pytest 卡在 'collecting...' 上

mysql - 运行syncdb后Django中的索引

python - 如何根据字典属性唯一合并字典列表

python - 在 Python 中创建列表对象类

django - 在版本控制中使用应用程序代码存储 Django 的好处