如何生成<span>而不是<li>标签</li> </span>

时间:2013-09-06 16:43:57

标签: python django django-models django-forms django-admin

forms.py

class ZergitForm(forms.Form):

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

views.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>标记内的复选框的输入字段。如何在我的应用程序中实现它。

1 个答案:

答案 0 :(得分:0)

没有干净的解决方案,要么您使用重写的渲染方法定义自己的CheckboxSelectMultiple小部件(imho,这是一个很大的开销):

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

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

Django Setting class of <ul> instead of <input> with CheckboxSelectMultiple widget

或者您自定义模板输出:

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