2

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

list_detail.object_detail の代わりに formdisplay を使用すると、エラーが発生します

TypeError at /inpatient-detail/4/
__init__() takes exactly 1 non-keyword argument (2 given)

これを行う方法についてのヒントはありますか?

また、インポートステートメントの書き方に関するドキュメントはどこにありますか? ドキュメントでそれを見つけることができなかったので、何からインポートするかを見つけるためにグーグルしなければなりませんでした。

前もって感謝します、スティーブ

4

1 に答える 1

2

クラスベースのジェネリック ビューに関する django のドキュメントはまだ最先端ではないため、それらに関する詳細情報を取得するには、ソース コードを参照することをお勧めします。ビューの作成/更新の場合、これは良いスタートです。

複数のクラス/ミックスインから継承する場合は、それらの順序にも注意する必要があります。django のソースを見ると、他のクラスの前にミックスインが配置されていることがわかります。

あなたが達成しようとしていることは私には完全には明らかではありませんが、あなたの目標が既存のオブジェクトからのデータを含むフォームを表示することである場合は、django.views.generic.update.UpdateViewあなたの友達になるべきです!

于 2011-06-30T09:36:24.810 に答える