【问题标题】:How can I change the default Django Form name?如何更改默认的 Django 表单名称?
【发布时间】:2020-10-17 23:33:57
【问题描述】:

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

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

感谢您的帮助!

【问题讨论】:

    标签: python django forms bootstrap-4


    【解决方案1】:

    不知道为什么要这样做,但是像这样将 get_context_data 方法添加到您的视图中:

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

    【讨论】:

    • 非常感谢您的回答。这行得通!我的希望是,当我以不同的方式命名它们时,我可以在一个页面上加载 2 个不同的表单。但这似乎并非如此。
    • @SirIsacson 您当然可以在同一个视图中使用 2 个表单,但是对于第二个表单,您需要将其添加为不同的名称并更新更多方法,如果您让我确切地知道你想做什么
    • 非常感谢您的帮助!我终于设法做到了。我对 django 还是很陌生,所以一切仍然很艰难。
    • 欢迎您,很高兴我能帮到您,请不要忘记标记为正确
    猜你喜欢
    • 2014-06-18
    • 1970-01-01
    • 2019-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-06
    • 2013-07-24
    相关资源
    最近更新 更多