モデルに関係なく、毎回同じテンプレートを利用するDjango用のクラスベースのビューを作成しようとしています。その目的は、各モデルにurls.pyエントリを追加して、ビューやテンプレートについて気にする必要がないことです。Django - クラスベースのビューからオブジェクトフィールドと名前にアクセスする
これはフォームを表示するために使用され、フォームフィールド名はモデルタイプに依存するため、ビューレベルでモデルを調べ、フィールド名を抽出して汎用テンプレートに渡す必要があります。テンプレートは、オブジェクトのフィールド名と値に基づいてフォームを生成します。
私は本当にこれで苦労しています。
def get_context_data(self, **kwargs):
context = kwargs
context_object_name = self.get_context_object_name(self.object)
if context_object_name:
context[context_object_name] = self.object
#add some custom stuff on too
tempdict = [(field, field.value_to_string(self)) for field in self.object._meta.fields]
#context.update({'datafields' : tempdict})
context.update({ 'blarg': 'tester!!'})
return context
次のように現時点では私は問題をhaivngよどこself.object._meta.fields
ビットがget_context_dataをオーバーライドに取り組んでいます。私は現在のモデルにアクセスする方法について頭を悩ますことはできません。私はビューでこれをやっているよ、私はミックスインにもっともっと運があると思う?
お時間をいただきありがとうございます。
O
返信ありがとうございました。私の問題はフォーム自体ではなく(たとえば、オブジェクトのフィールドと値の表を表示したいというふうに思うかもしれませんが)、すべてのデータに対して機能するテンプレートを作成したいという事実がありますあなたの2番目の段落で言及しているように、 'get_object'をオーバーライドして、私が何を思いつくのか見てみましょう - 歓声! – ollyb
'get_object'をオーバーライドし、代わりに辞書を返すようにしました。手動でコンテキストに追加され、レンダリングされ、それはすべての良い探している:)歓声 – ollyb