我想使用相同的模板在 django 中显示来自不同模型的记录,并使用通用类查看器。通用类查看器已经接受了模板中需要的大部分参数,除了一个。
如何将上下文中的这个额外参数传递给模板?
我尝试将它作为 urlconf 中的第三个(额外)参数传递,但没有成功:
# 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'
),
在我的应用程序中会有几个这样的 urlconfs。
一种可能性是对视图类进行子类化并提供我自己的 get_context_data 方法实现,该方法添加所需的键值对。
但是这种解决方案过于重复,因为它会应用于视图类的每次使用。
也许可以只创建视图类的一个子类。这个新类中的 as_view 类方法将接受一个新的命名参数,该参数将进入重新定义 get_context_data 的上下文中。
我在 django 和 Python 方面没有太多经验,所以我不确定如何做到这一点,我正在接受帮助。