带有管理员小部件的Django ModelForm
我创建了一些模型,然后从这些模型生成了ModelForms
。不过,我发现这些ModelForm
生成的控件和在管理页面看到的控件不太一样。
我想知道怎么才能:
得到和管理页面一样的控件。那些控件真不错,比如外键字段旁边有个“加号”图标,可以用来添加新的引用项。
日期时间控件有个“现在”按钮,可以快速填入当前时间。
有没有其他好用的插件可以让控件更酷?到目前为止,我看到的控件都很普通,甚至像日期时间这样的字段也只是生成了一个普通的输入框,没什么特别的。
1 个回答
6
你可以看看django/contrib/admin/widgets.py这个文件。在这里你会找到管理后台用到的小工具。然后在你的表单中,做一些类似下面的事情:
from django.contrib.admin.widgets import AdminDateWidget
class MyForm(ModelForm):
class Meta:
widgets = {
'date': AdminDateWidget(),
}
确保你的模板包含了所需的媒体文件(比如css和js文件)
我还建议你看看django-floppyforms,这是一个很不错的库,如果你想要更好的小工具的话。