django - 如何指定FormView模板中使用的表单变量的名称? (object_context_name 用于表单)

标签 django django-class-based-views

from forms import MyContactForm
from django.views.generic.edit import FormView 

class MyFormView(FormView):
    template_name = 'my_forms.html'                                      
    form_class = MyContactForm  
    success_url = '/thanks/' 

在我的模板中,表单是这样调用的:
{{ form }}
但是我怎么能这样称呼它:
{{ my_contact_form }} ?

这将是等效于 object_context_name 的形式(对于模型)。

最佳答案

您可以覆盖 get_context_data :

class MyFormView(FormView):
    template_name = 'my_forms.html'                                      
    form_class = MyContactForm  
    success_url = '/thanks/' 

    # from ContextMixin via FormMixin    
    def get_context_data(self, **kwargs):
        data = super(MyFormView, self).get_context_data(**kwargs)

        data['my_contact_form'] = data.get('form')

        return data

关于django - 如何指定FormView模板中使用的表单变量的名称? (object_context_name 用于表单),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15614245/

相关文章:

python - 如何在 Django 应用程序名称更改后编辑数据库表

python - Django:基于类的 View 、URL 和 template_name

django - UpdateView 中的 success_url,基于传递的值

python - Django:CreateView 和 UpdateView 中具有唯一约束的不同行为

python - 基于 Django 类的 View - 将所有代码放在 urls.py 中是一种不好的风格吗?

django - 在 Python Shell 中创建的对象,查询时无法识别

django - django 的 OneToOneField 和 django 的 OneToOneRel 的区别

django-class-based-views - Django : How to call class-based generic views in views. py?

python - 如何使用带有数据的数据库在 Django 中运行测试?

jquery - 使用 django 模板将参数传递给页面上的 Javascript 代码?