1

表格.py

class ZergitForm(forms.Form):

    zerg_selection = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple(),required=False)

视图.py

def feeds(request):

    if request.method == 'POST':
        zergform = ZergitForm(request.POST)
        """"""""
        some other logic comes here
        """"""""
    selection = ZergitForm(zerg_id)
    return render(request, 'feed_list.html',{'zerg_selection':zerg_selection})

feed_list.html

{% for feed in selection.zerg_selection %}
<span class="checkbox_select">{{ feed }}</span>
{% endfor %} 

问题是它呈现为标签中的复选框列表。<li>但我需要的是标签内带有复选框的输入字段<span>。如何在我的应用程序中实现它。

4

1 回答 1

0

对此没有干净的解决方案,要么您使用覆盖的渲染方法定义自己的 CheckboxSelectMultiple 小部件(恕我直言,这会带来很多开销):

https://github.com/django/django/blob/1.5.2/django/forms/widgets.py#L754

或者你使用小技巧(在这种情况下你替换<li>等等</li>):

<ul> 的 Django 设置类,而不是带有 CheckboxSelectMultiple 小部件的 <input>

或者您自定义模板输出:

https://stackoverflow.com/a/15441506/1566605

于 2013-09-07T17:49:08.797 回答