Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何检索选定复选框的值并将其显示在模板中?_Python_Django_Django Forms - Fatal编程技术网

Python 如何检索选定复选框的值并将其显示在模板中?

Python 如何检索选定复选框的值并将其显示在模板中?,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

我在做什么? 我正在培训一个简单的应用程序,在这个应用程序中,一个人可以订购比萨饼并选择他的配料,一旦表单提交,它就会在模板文件中显示提交的查询

有什么问题吗? 我很难在模板文件中显示表单中的复选框

这是我的档案:

型号.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()})
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这是模板文件,我只是没有放进去,因为我不知道如何仅访问选定的复选框值