为了更好地了解我正在加载哪种表单的页面,我想更改模板中用于访问它的名称。据我所知,默认情况下它设置为“ form”。在下面的片段中,我尝试使用“ form_inv”加载表单,但这不起作用。
{% extends "dashboard/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
<div class="content-section">
<form method="POST">
{% csrf_token %}
<fieldset class="form-group">
<legend class="border-bottom mb-4">Create Investment</legend>
{{ form_inv|crispy }}
</fieldset>
<div class="form-group">
<button class="btn btn-outline-info" type="submit">Create</button>
</div>
</form>
</div>
{% endblock content %}
以下是我创建的模型和各自的视图。
模型:
class MoneyGroups(models.Model):
title = models.CharField(max_length=100)
size = models.IntegerField()
interest = models.FloatField()
Django视图:
class MoneyCreateView(LoginRequiredMixin, CreateView):
model = MoneyGroups
template_name = 'dashboard/scenario_form.html' # <app>/<model>_<viewtype>.html
context_object_name = 'investments'
fields = ['title', 'size', 'interest']
success_url = '/dashboard/'
def form_valid(self, form):
form.instance.author = self.request.user #add the author to the form before it is submitted
return super().form_valid(form)
我必须在模型或视图中更改/添加什么参数才能更改可以在模板中访问的名称?
感谢您的帮助!
答案 0 :(得分:1)
不确定为什么要这样做,但可以像这样将get_context_data方法添加到视图中:
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context[‘form_inv’] = context[‘form’]
return context