Skip to main content
 首页 » 编程设计

python之Django FilteredSelectMultiple 不在页面上呈现

2024年10月01日3152php

我目前正在使用 Django 版本 1.11.2,并且想在管理页面之外使用 FilteredSelectMultiple 小部件。

这是我的forms.py:

class TBDAuthGroupManageForm(forms.Form): 
    permissions = forms.ModelMultipleChoiceField(queryset=Permission.objects.all(), 
                                                required=True, 
                                                widget=FilteredSelectMultiple("Permissions", is_stacked=False)) 
 
class Media: 
    css = {'all': ('/static/admin/css/widgets.css',), } 
    js = ('/admin/jsi18n/',) 
 
def __init__(self, parents=None, *args, **kwargs): 
    super(TBDAuthGroupManageForm, self).__init__(*args, **kwargs) 

这是我的views.py:

class TBDAuthGroupManageView(DetailView): 
    model = TBDAuthGroup 
    template_name = 'perms/tbdauthgroup_manage.html' 
 
    def get_context_data(self, **kwargs): 
    context = super(TBDAuthGroupManageView, self).get_context_data(**kwargs) 
    context['form'] = TBDAuthGroupManageForm() 
    return context 

这是我的模板:

{% extends "base.html" %} 
{% load static %} 
{% block css %} 
    {{ form.media }} 
    <script type="text/javascript" src="{% static 'js/jquery-3.1.1.min.js' %}"></script> 
    <script type="text/javascript" src="/static/admin/js/jquery.min.js"></script> 
    <script type="text/javascript" src="/static/admin/js/jquery.init.js"></script> 
{% endblock %} 
{% block content %} 
    {{ form }} 
{% endblock %} 

但是当我在页面中呈现它时,我只得到这个:

不是这个:

我很想知道我做错了什么,以及如何解决这个问题,使我的表单看起来像管理表单。

请您参考如下方法:

{% block content %} 
{{ form.media }} 
<form> 
  {{ form.permissions }} 
</form> 
{% endblock %} 

在你的模板中试试这个