2012-07-21 138 views
4

所以,我想在表单向导中使用默认的Django管理表单,因为在此表单的第一个和第二个页面上都有一些外键与主键对象的对象,我希望能够在线编辑它们。我使用http://elo80ka.wordpress.com/2009/10/28/using-a-formwizard-in-the-django-admin/作为基础的例子,但是,他指定了他自己的管理用户的表单。当然,如果你使用自己的自定义表单,内联将无法使用。于是,我试着做以下几点:默认的Django管理表单和FormWizard

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:\Python27\lib\site-packages\django\forms\models.py in __init__, line 229 
Python Executable: C:\Python27\python.exe 

这样看来,自动生成的管理形式不指定类元需要常规ModelForm的信息。

我的问题是,是否有任何方式使用默认的管理窗体与FormWizard。我需要以某种方式为管理员表单提供元数据,如果是这样的话?还是我需要完全做其他事情?

+0

4年后的今天你会怎么做? :) – 2017-05-18 23:50:47

+0

简单:我不会。 – rmehlinger 2017-05-22 06:57:06

回答

1

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

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

你的情况,你会做这样的事情

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

达到什么你想...希望这回答你的问题。