使用Django和ManyToManyField显示自定义复选框

时间:2013-11-10 19:38:06

标签: python django

我无法将复选框与模板连接起来,以提供良好的用户体验。我将表单发送到包含以下MyType的视图,该视图描述为:

模型

class A(models.Model):
   MyType          = models.ManyToManyField(P)

形式

MyType    = forms.ModelMultipleChoiceField(queryset=P.objects.all(), required=False, widget=forms.CheckboxSelectMultiple)

并且视图将发送为:

return render(request,“static / about.html”,{'form':form})

在模板中,我有以下类型的结构

 <li class="option table">
 <div class="cell" id="center">
 <div class="option-text">Option 1</div>
 </div>
 <div class="cell" id="right">
 <div class="option-checkbox">
 <div class="check"></div>
 <input id="myid1" name="myname1" value="1" type="checkbox">
 </div>
 </div>

现在我可以使用answer:On a django form, how do I loop through individual options per field?来循环播放,但这只会给出描述。如何以最智能的方式重新创建处理选项的实际HTML?

我已经尝试过shell来查看对象,但是我真的看不到我应该引入的内容。即在模板中重新创建。我应该引入哪些选项?或者我如何获得正确的信息来构建我的HTML,以便表单的保存方面起作用。

在模板中,我无法做到:

{% for field in form["MySmoking"] %}

{% endfor %}

所以我怎么能修改以下内容:

 {% for option in form.MyType.field.choices.queryset %}
        {{ option.image }}
        {{ option.title }}
        {{ option.description }}
    {% endfor %}

那么,我将如何吐出构建复选框的HTML。

感谢。

0 个答案:

没有答案