默认Django管理表单和FormWizard

4
所以,我想在表单向导中使用默认的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:\Python27\lib\site-packages\django\forms\models.py in __init__, line 229
Python Executable:  C:\Python27\python.exe

似乎自动生成的管理表单没有指定常规ModelForm所需的class Meta信息。
我的问题是,是否有任何方法可以使用默认的管理表单与FormWizard。我需要以某种方式提供管理表单的Meta吗?如果是这样,应该怎么做?还是我需要完全做其他事情?

今天你会怎么做呢,四年后? :) - Narnik Gamarnik
容易:我不会。 - rmehlinger
1个回答

1
我猜这是表单在ModelAdmin中创建和使用的问题。 如果您调用'SyllabusAdmin.form',它将是未初始化的ModelForm类。
据我所知,ModelAdmin使用get_form来实际创建和配置表单。
在您的情况下,您需要像这样做: form = SyllabusAdmin(SyllabusModel, admin.site).get_form(request) 以实现您想要的效果...希望它能回答您的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接