带管理小部件的Django ModelForm

时间:2012-01-20 09:05:58

标签: python django django-admin web

我创建了模型,我从模型中创建了ModelForms。但是,我注意到ModelForm生成的小部件与我在管理页面中的小部件不同。

我怎么能:

  1. 获取与管理页面中的窗口小部件相同的窗口小部件。那些很棒。外键字段带有“加号”图标,可让您添加被引用的新项目。

  2. 日期时间窗口小部件具有“现在”按钮,可让您立即使用当前时间填充字段。

  3. 小部件还有其他很酷的插件吗?到目前为止,我得到的只是meh,只是简单的html小部件即使像Datetime这样的字段也没有意义(它生成普通的普通输入控件)。

1 个答案:

答案 0 :(得分:5)

你应该看看django / contrib / admin / widgets.py你会在这里找到管理站点小部件。然后以你的形式,做出类似的东西:

from django.contrib.admin.widgets import AdminDateWidget

class MyForm(ModelForm):

    class Meta:
        widgets = {
            'date': AdminDateWidget(),
        }

确保您的模板包含所需的媒体文件(css,js)

如果你想要更好的小部件,我还建议你看django-floppyforms这是一个非常好的库