我使用django1.6中的通用CRUD视图,例如:
class KanriCreateView(CreateView):
template_name = 'generic_form.html'
class KanriUpdateView(UpdateView):
template_name = 'generic_form.html'
等等
注意:这些是作为基类使用的类,我在里面子类化了视图.py整个项目中的文件。在
为了保持干燥,我正在为所有创建/更新视图编写一个通用表单模板。在
对于更新视图,我可以访问模板中的object
,这是我正在更新的实例。然后我使用object.__class__.__name__
(通过一个自定义过滤器)来获取类的名称(这样我就可以自动生成诸如“adduser”、“addrole”等自定义按钮,这样表单看起来就不那么……通用了。在
当然,当我在CreateView
中使用我的模板时,object
不存在(因为它还没有创建),所以我的自定义按钮等不工作,我得到一个VariableDoesNotExist
异常。在
Django是否提供了类以便我可以在模板中使用它?在
如果您正在为CreateView使用一个ModelForm,那么这不太管用。这是因为您没有指定
但你却指定
^{pr2}$所以你能做的是
KanriCreateView
ContextDataMixin
提供),那么您可以访问视图类的model
属性并获得模型的名称:{{ view.model.__name__ }}
干杯
相关问题 更多 >
编程相关推荐