加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 默认的Django Admin Forms和FormWizard

发布时间:2020-12-20 13:29:10 所属栏目:Python 来源:网络整理
导读:所以,我想在表单向导中使用默认的Django管理表单,因为在此表单的第一页和第二页上有许多对象具有指向主对象的外键,我希望能够内联编辑它们.我使用 http://elo80ka.wordpress.com/2009/10/28/using-a-formwizard-in-the-django-admin/的示例作为基础,然而,他
所以,我想在表单向导中使用默认的Django管理表单,因为在此表单的第一页和第二页上有许多对象具有指向主对象的外键,我希望能够内联编辑它们.我使用 http://elo80ka.wordpress.com/2009/10/28/using-a-formwizard-in-the-django-admin/的示例作为基础,然而,他指定了他自己的管理员使用的形式.当然,如果您使用自己的自定义表单,则内联将无法使用.所以,我尝试了以下操作:

create_syllabus = SyllabusCreationWizard([SyllabusAdmin.form,CalendarForm])

但是,如果我这样做,我会收到以下错误:

'ModelForm' object has no attribute '_meta'
Request Method: GET
Request URL:    http://127.0.0.1:8000/admin/Charybdis/syllabus/add/
Django Version: 1.4
Exception Type: AttributeError
Exception Value:    
'ModelForm' object has no attribute '_meta'
Exception Location: C:Python27libsite-packagesdjangoformsmodels.py in __init__,line 229
Python Executable:  C:Python27python.exe

看起来自动生成的Admin表单没有指定需要常规ModelForm的类Meta信息.

那么,我的问题是,是否有任何方法可以使用FormWizard的默认管理表单.我是否需要以某种方式为管理表单提供Meta,如果是,如何?或者我是否需要完全做其他事情?

解决方法

我想这是如何在ModelAdmin中创建和使用表单的问题.
如果你调用’SyllabusAdmin.form’,它将是未初始化的ModelForm类.

Afaik ModelAdmin使用get_form来实际创建和配置表单.

在你的情况下,你将不得不做类似的事情

form = SyllabusAdmin(SyllabusModel,admin.site).get_form(request)

实现你想要的……希望它能回答你的问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读