【发布时间】:2011-09-25 16:10:46
【问题描述】:
Django 文档在基于类的通用视图中提到了 DetailView 由以下各项组成:View、SingleObjectMixin 和 SingleObjectTemplateResponseMixin。我正在对此进行试验,因为我有兴趣创建一个通用视图,该视图将使用 ModelForm 执行 object_detail 视图,以便可以自动生成我的模型行。
为了尝试复制 DetailView,我尝试创建一个类,如下所示:
from django.views.generic import list_detail, View
from django.views.generic.detail import (SingleObjectMixin,
SingleObjectTemplateResponseMixin, BaseDetailView)
class formdisplay(View,SingleObjectMixin,SingleObjectTemplateResponseMixin): pass
当我使用 formdisplay 而不是 list_detail.object_detail 时出现错误
TypeError at /inpatient-detail/4/
__init__() takes exactly 1 non-keyword argument (2 given)
关于如何做到这一点的任何提示?
另外,关于如何编写导入语句的文档在哪里?我不得不在谷歌上找到要导入的内容,因为我在文档中找不到。
提前致谢, 史蒂夫
【问题讨论】:
-
你是如何在你的 url conf 中使用
formdisplay的?formdisplay.as_view()?另外,您可能想要执行 Django 已经内置的操作。检查django.views.generic.edit和他们的FormView类。 -
谢谢。我正在寻找一种单行方式来利用我的 ModelForm。 object_detail 函数很好,但不会将表单作为输入。我现在看到,我可以通过为 ModelView 重写 object_detail 或使用基于类的通用视图并替换 get 方法来做我想做的事情。
标签: django django-generic-views