如何在前端中使用Django的filter_horizontal?

4

我希望你能帮助我,有没有一种方法可以在Django 1.9.7管理界面之外使用filter_horizontal?

我看到可以通过以下方式在我的forms.py中包含widget:

from django.contrib.admin.widgets import FilteredSelectMultiple

并将其包含在中:

class Up(forms.ModelForm):
    class Meta:
        model = Up_model
        fields = ('add_doctor')
        labels = {
            'add_doctor': ('Add doctor'),
        }
        widgets = {
            'add_doctor': FilteredSelectMultiple("Groups", is_stacked=False),
        }

但我一直没有成功,你能帮我解决吗?


你应该遵循Python/PEP的命名风格。因此,应该使用UpModel而不是UP_model。 并且你不能直接在管理界面之外使用管理小部件。 - ohrstrom
还有没有办法在前端使用弹出窗口来选择和添加ManyToManyField的选项(就像在管理员界面上的+按钮一样)? - Kevin Ramirez Zavalza
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - ohrstrom
1个回答

6

即使这个问题很老,对于任何遇到同样问题的人:我可以通过将以下依赖项添加到输出页面来解决它。我正在使用Django 1.11

<link rel="stylesheet" type="text/css" href="{% static 'admin/css/widgets.css' %}" />

<script type="text/javascript" src="{% url 'admin:jsi18n' %}"></script>
<script type="text/javascript" src="{% static 'admin/js/core.js' %}"></script>
<script type="text/javascript" src="{% static 'admin/js/vendor/jquery/jquery.js' %}"></script>
<script type="text/javascript" src="{% static 'admin/js/jquery.init.js' %}"></script>

<script type="text/javascript" src="{% static 'admin/js/SelectBox.js' %}"></script>
<script type="text/javascript" src="{% static 'admin/js/SelectFilter2.js' %}"></script>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接