在Django中滚动您自己的通用视图

在Django中滚动您自己的通用视图,django,django-generic-views,Django,Django Generic Views,Django文档在基于类的泛型视图中提到,DetailView由以下内容组成:View、SingleObjectMixin和SingleObjectTemplateResponseMixin。我正在对此进行试验,因为我对创建一个通用视图感兴趣,该视图将使用ModelForm创建一个对象详细视图,以便可以自动生成模型行 为了尝试复制DetailView,我尝试创建一个类,如下所示: from django.views.generic import list_detail, View from dj

Django文档在基于类的泛型视图中提到,DetailView由以下内容组成:View、SingleObjectMixin和SingleObjectTemplateResponseMixin。我正在对此进行试验,因为我对创建一个通用视图感兴趣,该视图将使用ModelForm创建一个对象详细视图,以便可以自动生成模型行

为了尝试复制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\u detail.object\u detail时,会出现错误

TypeError at /inpatient-detail/4/
__init__() takes exactly 1 non-keyword argument (2 given)
有没有关于如何做到这一点的提示

另外,关于如何编写导入语句的文档在哪里?我不得不在谷歌上找到要导入的内容,因为我在文档中找不到

提前感谢,,
Steve

由于django关于基于类的泛型视图的文档还不是很先进,因此获得更多关于它们的信息最好的方法是浏览源代码;对于创建/更新视图,这是一个良好的开端

当从多个类/混合继承时,您还应该注意它们的顺序-如果您查看django的源代码,您将看到它们将混合放在其他类之前


我并不完全清楚,您试图实现什么,但是如果您的目标是显示一个包含现有对象数据的表单,那么您应该是您的朋友

您如何在url配置中使用
formdisplay
<代码>formdisplay.as_view()?另外,您可能希望执行Django内置的操作。检查
django.views.generic.edit
及其
FormView
类。谢谢。我在寻找一种利用我的模型表单的单行方式。object_detail函数很好,但不会将表单作为输入。现在我明白了,通过重写ModelView的object_细节,或者使用基于类的泛型视图并替换get方法,我可以做我想做的事情。感谢您指向源代码。我现在看到list_detail.object_detail实际上是一个函数,关于类视图的注释实际上是说,移动到可以与mixin一起使用的基于类的泛型视图。答案可以在上找到,谢谢大家。对相关问题的评论让我明白了这一点。没有你就不可能做到这一点!