如何更改默认的Django表单名称?

时间:2020-06-27 13:09:49

标签: python django forms bootstrap-4

为了更好地了解我正在加载哪种表单的页面,我想更改模板中用于访问它的名称。据我所知,默认情况下它设置为“ 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)

我必须在模型或视图中更改/添加什么参数才能更改可以在模板中访问的名称?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

不确定为什么要这样做,但可以像这样将get_context_data方法添加到视图中:

def get_context_data(self, **kwargs):
    context = super().get_context_data(**kwargs)
    context[‘form_inv’] = context[‘form’]
    return context
相关问题