基于 Class 的 UpdateView django 中的自定义按钮
Custom button in Class based UpdateView django
问题:我的 UpdateView 看起来和我的 CreateView 一样。我想将提交按钮从“检查”更改为“更新”。
以下是我在 views.py 文件中的观点:
class CapsUnifCreateView(CreateView):
template_name = 'capsules/uniformity_form.html'
model = models.Uniformity
fields = (
'caps_name',
'mass_1_caps_empty',
'mass_20_caps_full',
'mass_max1',
'mass_min1',
)
class CapsUnifUpdateView(UpdateView):
fields = (
'caps_name',
'mass_1_caps_empty',
'mass_20_caps_full',
'mass_max1',
'mass_min1',
)
model = models.Uniformity
请注意,我没有为 UpdateView 使用单独的模板。
类似
{% if CreateView %} Check {% else %} Update {% endif %}
在 html 文件中会很好,但我不知道如何实现它。
提前致谢!
在您的视图中使用获取上下文数据
class CapsUnifCreateView(CreateView):
template_name = 'capsules/uniformity_form.html'
model = models.Uniformity
fields = (
'caps_name',
'mass_1_caps_empty',
'mass_20_caps_full',
'mass_max1',
'mass_min1',
)
def get_context_data(self, **kwargs):
context = super(CapsUnifCreateView, self).get_context_data(**kwargs)
context['is_update'] = False
return context
class CapsUnifUpdateView(UpdateView):
fields = (
'caps_name',
'mass_1_caps_empty',
'mass_20_caps_full',
'mass_max1',
'mass_min1',
)
model = models.Uniformity
def get_context_data(self, **kwargs):
context = super(CapsUnifUpdateView, self).get_context_data(**kwargs)
context['is_update'] = True
return context
在您的模板中检查
{% if is_update %} Update {% else %} Create {% endif %}
找到了!在 ModelName_form.html(链接到 CreateView 的 html 文件中):
{% if not form.instance.pk %}
<input type="submit" class="btn btn-primary" value="Check">
{% else %}
<input type="submit" class="btn btn-primary" value="Update">
{% endif %}
这意味着,如果上下文中没有主键(在CreateView期间),则显示“Check”,否则如果有主键(在UpdateView期间),则显示“Update”。
感谢您的努力!
问题:我的 UpdateView 看起来和我的 CreateView 一样。我想将提交按钮从“检查”更改为“更新”。
以下是我在 views.py 文件中的观点:
class CapsUnifCreateView(CreateView):
template_name = 'capsules/uniformity_form.html'
model = models.Uniformity
fields = (
'caps_name',
'mass_1_caps_empty',
'mass_20_caps_full',
'mass_max1',
'mass_min1',
)
class CapsUnifUpdateView(UpdateView):
fields = (
'caps_name',
'mass_1_caps_empty',
'mass_20_caps_full',
'mass_max1',
'mass_min1',
)
model = models.Uniformity
请注意,我没有为 UpdateView 使用单独的模板。
类似
{% if CreateView %} Check {% else %} Update {% endif %}
在 html 文件中会很好,但我不知道如何实现它。
提前致谢!
在您的视图中使用获取上下文数据
class CapsUnifCreateView(CreateView):
template_name = 'capsules/uniformity_form.html'
model = models.Uniformity
fields = (
'caps_name',
'mass_1_caps_empty',
'mass_20_caps_full',
'mass_max1',
'mass_min1',
)
def get_context_data(self, **kwargs):
context = super(CapsUnifCreateView, self).get_context_data(**kwargs)
context['is_update'] = False
return context
class CapsUnifUpdateView(UpdateView):
fields = (
'caps_name',
'mass_1_caps_empty',
'mass_20_caps_full',
'mass_max1',
'mass_min1',
)
model = models.Uniformity
def get_context_data(self, **kwargs):
context = super(CapsUnifUpdateView, self).get_context_data(**kwargs)
context['is_update'] = True
return context
在您的模板中检查
{% if is_update %} Update {% else %} Create {% endif %}
找到了!在 ModelName_form.html(链接到 CreateView 的 html 文件中):
{% if not form.instance.pk %}
<input type="submit" class="btn btn-primary" value="Check">
{% else %}
<input type="submit" class="btn btn-primary" value="Update">
{% endif %}
这意味着,如果上下文中没有主键(在CreateView期间),则显示“Check”,否则如果有主键(在UpdateView期间),则显示“Update”。
感谢您的努力!