你好。
我是 Django 的新手 我想在 html 中创建一个类似于上图的表单。 当用户选择单选按钮时,表单应保存数据。
如何在django中实现这样一个表单(请注意用户不能选择多个答案)
最佳答案
您想使用 ChoiceField和 RadioSelect :
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/