我想替换管理页面列表视图中的addobject按钮。其基本思想是管理员可以下载数据库中所有模型的数据,使用工具编辑数据,然后重新加载为CSV文件。在
在列表视图中,我正在努力重写表单,作为设置
class SomeModelForm(forms.Form):
csv_file = forms.FileField(required=False, label="please select a file")
class Meta:
model = MyModel
fields = '__all__'
class SomeModel(admin.ModelAdmin):
change_list_template = 'admin/my_app/somemodel/change_list.html'
form = SomeModelForm
other stuff
更改管理员_列表.html重写如下:
^{pr2}$以前SomeModel缺少类Meta,根据sebbs的响应,这是更新的。最初的错误已经解决,但现在管理页面显示上载和重置按钮,但没有用于文件上载的字段。在
干杯
根据sebb的输入进行编辑。谢谢塞布。 修复的错误是
< class ‘my_model.admin.SomeModelAdmin'>: (admin.E016) The value of 'form' must inherit from 'BaseModelForm'
在此,解决方案如下:
在模板被重写的情况下:
^{pr2}$表单需要一些自定义验证,但这解决了定制管理页面的困难部分。在
要详细说明这是怎么回事:
get_url被重写,这样就可以在管理页面中添加一个额外的端点,这个端点可以指向任何视图,在本例中,它指向upload\u csv
将重写changelist_视图以将表单信息附加到视图中
改变_列表.html模板块“object tools”被表单字段覆盖
希望其他人也能发现这一点。在
在你的类SomeModelForm中添加如下内容:
从形式。形式到窗体.ModelForm在
相关问题 更多 >
编程相关推荐