FormView继承了TemplateResponseMixin和BaseFormView,BaseFormView继承了FormMixin和ProcessFormView。 源码: classFormMixin(ContextMixin):"""Provide a way to show and handle a form in a request."""initial={}form_class=Nonesuccess_url=Noneprefix=Nonedefget_initial(self):"""Return the initial data to u...
实现上述流程,FormView需要设置以下两个属性(方法): form_class : 表单类,用于 get_form() 方法,这里使用 ApplicationForm ;该属性也可以通过重写 get_form_class() 方法进行定义; success_url:表单验证成功后跳转到的url,用于 form_valid() 方法。该属性也可以通过重写 get_success_url() 方法进行定义。
然后覆盖 FormView 子类的 post 方法来控制多个文件上传: views.py¶ from django.views.generic.edit import FormView from .forms import FileFieldForm class FileFieldFormView(FormView): form_class = FileFieldForm template_name = 'upload.html' # Replace with your template. success_url = '...' # Re...
当用户输入信息通过表单验证提交后,转到其它页面。使用FormView一般需要定义template_name, form_class和success_url. 见下面代码。 views.py - Use FormView from myapp.forms import ContactForm from django.views.generic.edit import FormView class ContactView(FormView): template_name = 'contact.html' form_cla...
# django/contrib/auth/views.py class LoginView(SuccessURLAllowedHostsMixin, FormView): """ ...
可以使用 FormView 构建视图: views.py¶ from myapp.forms import ContactForm from django.views.generic.edit import FormView class ContactFormView(FormView): template_name = 'contact.html' form_class = ContactForm success_url = '/thanks/' def form_valid(self, form): # This method is called ...
classContactView(FormView): template_name ='contact.html' form_class = ContactForm success_url ='/thanks/' defform_valid(self,form): # This method is called when valid form data has been POSTed. # It should return an HttpResponse. ...
如果请求query_string,它还会将查询字符串附加到生成的URL。子类可以实现他们希望的任何行为,只要该方法返回可重定向的URL字符串即可。 三、通用显示视图 本类视图主要用户数据展示,包括ListView显示对象列表信息和DetailView显示对象详细信息 3.1 ListView 显示对象列表页面 ...
FormView继承TemplateResponseMixin所以这里可以使用template_name。 form_valid()的默认实现只是简单地重定向到success_url。 模型的表单 通用视图在于模型一起工作时会真正光芒四射。这些通用的视图将自动创建一个ModelForm,只要它们能知道使用哪一个模型类:
FormView 这么写: fromdjango.views.genericimportFormViewfromdjango.urlsimportreverse_lazyfrommyapp.formsimportUserFormclassFormPageView(FormView): success_url = reverse_lazy("template") form_class = UserForm template_name ="forms.html"# initial = {"username": "catfish"} 设置初始值# prefix = "cat...