Python 如何检索选定复选框的值并将其显示在模板中?
我在做什么? 我正在培训一个简单的应用程序,在这个应用程序中,一个人可以订购比萨饼并选择他的配料,一旦表单提交,它就会在模板文件中显示提交的查询 有什么问题吗? 我很难在模板文件中显示表单中的复选框 这是我的档案: 型号.pyPython 如何检索选定复选框的值并将其显示在模板中?,python,django,django-forms,Python,Django,Django Forms,我在做什么? 我正在培训一个简单的应用程序,在这个应用程序中,一个人可以订购比萨饼并选择他的配料,一旦表单提交,它就会在模板文件中显示提交的查询 有什么问题吗? 我很难在模板文件中显示表单中的复选框 这是我的档案: 型号.py class PickedDatas(models.Model): name = models.CharField(max_length=255, blank=True, null=True) class Picked(models.Model): na
class PickedDatas(models.Model):
name = models.CharField(max_length=255, blank=True, null=True)
class Picked(models.Model):
name = models.CharField(max_length=255)
picked = models.ManyToManyField(PickedDatas, blank=True)
class CustomChoiceField(forms.ModelMultipleChoiceField):
def label_from_instance(self, obj):
return mark_safe('%s' % (obj.name))
class SomeForm(forms.ModelForm):
class Meta:
model = Picked
fields = ['name', 'picked']
picked = CustomChoiceField(queryset=PickedDatas.objects.all(), widget=forms.CheckboxSelectMultiple())
def some_view(request):
if request.method == 'POST':
form = SomeForm(request.POST)
if form.is_valid():
...
else:
form = SomeForm
return render(request, 'features.html', {'form':form, 'picked':Picked.objects.all()})
forms.py
class PickedDatas(models.Model):
name = models.CharField(max_length=255, blank=True, null=True)
class Picked(models.Model):
name = models.CharField(max_length=255)
picked = models.ManyToManyField(PickedDatas, blank=True)
class CustomChoiceField(forms.ModelMultipleChoiceField):
def label_from_instance(self, obj):
return mark_safe('%s' % (obj.name))
class SomeForm(forms.ModelForm):
class Meta:
model = Picked
fields = ['name', 'picked']
picked = CustomChoiceField(queryset=PickedDatas.objects.all(), widget=forms.CheckboxSelectMultiple())
def some_view(request):
if request.method == 'POST':
form = SomeForm(request.POST)
if form.is_valid():
...
else:
form = SomeForm
return render(request, 'features.html', {'form':form, 'picked':Picked.objects.all()})
视图.py
class PickedDatas(models.Model):
name = models.CharField(max_length=255, blank=True, null=True)
class Picked(models.Model):
name = models.CharField(max_length=255)
picked = models.ManyToManyField(PickedDatas, blank=True)
class CustomChoiceField(forms.ModelMultipleChoiceField):
def label_from_instance(self, obj):
return mark_safe('%s' % (obj.name))
class SomeForm(forms.ModelForm):
class Meta:
model = Picked
fields = ['name', 'picked']
picked = CustomChoiceField(queryset=PickedDatas.objects.all(), widget=forms.CheckboxSelectMultiple())
def some_view(request):
if request.method == 'POST':
form = SomeForm(request.POST)
if form.is_valid():
...
else:
form = SomeForm
return render(request, 'features.html', {'form':form, 'picked':Picked.objects.all()})
至于模板文件,我使用for循环来显示拾取的模型数据
我如何才能实现我正在努力做的事情
编辑 这是模板文件features.html
<h2>Enter your name and choose your pizza toppings</h2>
<form method='post'>
{% csrf_token %}
{{ form.as_p }}
<input type='submit' value='submit'>
</form>
{% for p in picked %}
<h2>Pizza For : <strong>{{ p.name }}</strong></h2>
<p>{{ p.picked }}</p>
{% endfor %}
输入您的姓名并选择您的比萨配料
{%csrf_令牌%}
{{form.as_p}}
{已拾取%%中的p的百分比}
匹萨饼:{{p.name}
{{p.picked}}
{%endfor%}
它为{{p.picked}}提供了以下信息:pizza.PickedDatas.None
picked.picked
是一个多对多字段,因此需要循环选择:
{% for picked in picked %}<!-- Note renamed variable to prevent clash with inner loop -->
<h2>Pizza For : <strong>{{ picked.name }}</strong></h2>
<p>{% for p in picked.picked.all %}{{ p }}{% endfor %}</p>
{% endfor %}
{%用于已拾取的%}
匹萨饼:{{picked.name}
{%p在picked.picked.all%}{{p}{%endfor%}
{%endfor%}
由于您的问题是关于模板的,您不应该显示该模板吗?@DanielRoseman这是模板文件,我只是没有放进去,因为我不知道如何仅访问选定的复选框值