ジェネリック クラス ビューアーを使用して、同じテンプレートを使用して、django のさまざまなモデルのレコードを表示したいと考えています。ジェネリック クラス ビューアは、1 つを除いて、テンプレートで必要なほとんどの引数を既に受け入れています。
コンテキスト内のこの追加の引数をテンプレートに渡すにはどうすればよいですか?
urlconf の 3 番目の (追加の) 引数として渡そうとしましたが、成功しませんでした:
# in urlconf.py
url(r'^processador/(?P<pk>[\w-]+)/$',
UpdateView.as_view(
model=Processador,
template_name='model_form.html',
success_url=reverse_lazy('processador-list'),
),
{'extrainfo': "Processador"},
name='processador-detail'
),
url(r'^software/(?P<pk>[\w-]+)/$',
UpdateView.as_view(
model=Software,
template_name='model_form.html',
success_url=reverse_lazy('software-list'),
),
{'extrainfo': "Software"},
name='software-detail'
),
私のアプリケーションには、このような urlconf がいくつかあります。
1 つの可能性は、ビュー クラスをサブクラス化し、目的のキーと値のペアを追加する get_context_data メソッドの独自の実装を提供することです。
しかし、このソリューションは、ビュー クラスのすべての使用に適用されるため、繰り返しが多すぎます。
ビュー クラスのサブクラスを 1 つだけ作成することも可能です。この新しいクラスの as_view クラス メソッドは、get_context_data の再定義でコンテキストに入る新しい名前付き引数を受け入れます。
私は django と Python の経験があまりないので、これを達成する方法がわからず、助けを受け入れています。