我正在使用django的通用视图为我的CreateView
和UpdateView
共享相同的模板。我想在我使用CreateView
时使用UpdateView
和“更新”时,我的模板中的“提交”按钮说“添加”。我的模板中是否有任何方法可以区分使用哪个视图(CreateView
vs UpdateView
)?
我知道我可以使用template_name_suffix
使用单独的模板,并将常用内容放在单独的包含或其他内容中,但只是想知道是否有办法在不创建单独模板的情况下执行此操作。
答案 0 :(得分:9)
创建新对象时,object
在呈现模板时始终为None。您可以检查模板中是否存在{{ object }}
:
{% if object %}Update{% else %}Add{% endif %}
答案 1 :(得分:2)
覆盖get_context_data并在视图中添加标记:
def get_context_data(self, **kwargs):
context = super(YourClass, self).get_context_data(**context)
context['create_view'] = True
return context
将YourClass更改为您的班级视图名称
然后在您的模板中,您可以:
{% if create_view %}