【发布时间】:2010-12-14 11:33:46
【问题描述】:
Django 管理站点使用了一个非常酷的小部件:
如何在我自己的应用程序中使用这个小部件?我没有看到类似的东西listed here。
【问题讨论】:
标签: django forms django-forms
Django 管理站点使用了一个非常酷的小部件:
如何在我自己的应用程序中使用这个小部件?我没有看到类似的东西listed here。
【问题讨论】:
标签: django forms django-forms
来自docs:
Django Admin 应用程序为日历、过滤选择等定义了许多自定义小部件。这些小部件定义媒体要求,Django 管理员使用自定义小部件代替 Django 默认值。管理模板将仅包含在任何给定页面上呈现小部件所需的那些媒体文件。
如果您喜欢 Django Admin 应用程序使用的小部件,请随意在您自己的应用程序中使用它们!它们都存储在 django.contrib.admin.widgets 中。
在这种情况下,您需要 FilteredSelectMultiple 小部件。要使用它,请将小部件应用于表单字段,如下所示:
my_field = forms.ModelMultipleChoiceField(queryset=MyModel.objects.all(), widget=FilteredSelectMultiple("verbose name", is_stacked=False))
确保在模板中包含表单media,因为它需要包含一些 JS 文件。
【讨论】:
is_stacked 变量)设置为 False。查看代码,看起来可能会影响两个框的显示。不幸的是,我现在无法自己测试它,所以我只是在查看代码嘿嘿:)
<script type="text/javascript" src="/~mnb2/a3/admin/jsi18n/"></script>,form.media 不包含它。
<script type="text/javascript" src="/~mnb2/a3/admin/jsi18n/"></script> 中到底是什么?为什么它没有指向特定的.js 文件?