Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果表单位于我的基本模板文件中,如何实现表单提交?_Python_Django_Django Views_Django Forms_Django Templates - Fatal编程技术网

Python 如果表单位于我的基本模板文件中,如何实现表单提交?

Python 如果表单位于我的基本模板文件中,如何实现表单提交?,python,django,django-views,django-forms,django-templates,Python,Django,Django Views,Django Forms,Django Templates,我有一个基本模板文件,它保存了用户订阅电子邮件时事通讯的表单。我的所有模板都继承自基本模板文件,因为我希望在每个网页上显示此表单 我不知道如何让表单将用户输入的数据提交到数据库。到目前为止,我处理的是视图,每个视图都特定于一个URL,因此我并不清楚如何对所有URL执行此操作,因为所有URL上都存在基本模板 base.html(基本模板文件): 如何实现我想要的?您需要使用ModelForm,调用save()方法时,该方法将表单链接到模型。(这也会增加很多安全性) 从django.forms导入M

我有一个基本模板文件,它保存了用户订阅电子邮件时事通讯的表单。我的所有模板都继承自基本模板文件,因为我希望在每个网页上显示此表单

我不知道如何让表单将用户输入的数据提交到数据库。到目前为止,我处理的是视图,每个视图都特定于一个URL,因此我并不清楚如何对所有URL执行此操作,因为所有URL上都存在基本模板

base.html
(基本模板文件):


如何实现我想要的?

您需要使用
ModelForm
,调用
save()
方法时,该方法将表单链接到模型。(这也会增加很多安全性)

从django.forms导入ModelForm
从myapp.models导入EmailSubscriber
#创建表单类。
类EmailSubscriberForm(ModelForm):
#如果email是EmailField,`is_valid`方法将检查它是否是电子邮件
类元:
型号=电子邮件订户
字段=[“电子邮件”、“名字”、“姓氏”]
然后在视图中,您可以创建并作为上下文传递,或者获取响应并保存到数据库

if request.method==“POST”:
form=EmailSubscriberForm(request.POST)
如果form.is_有效():
email\u subscriber=form.save()
#通常在这里调用'return-HttpResponseRedirect'
其他:
form=EmailSubscriberForm()
#通常调用'return render(请求'page.html',{'form':form})
您只需在模板中调用它:


{{form}}

Ref:

我有两个问题:1)如何将视图链接到表单(因为表单在我的网站上无处不在,并且没有特定的URL)?2) 为什么我不应该使用
modelform\u factory
?为什么要从
ModelForm
继承呢?也许您可以创建一个中间件,在返回到当前页面之前,该中间件将负责检查是否提交了此表单并处理数据
{% load static %}
<html>
<head>
   <title>{% block title %}{% endblock %}</title>
</head>
<body>
   <a href="{% url 'employers:list_joblistings' %}"> Homepage </a>
   <a href="{% url 'employers:submit_job_listing' %}"> Post a job </a>
   {% block content %}{% endblock %}
   <p> Subscribe to new jobs: </p>
   <form method="post">
       <p> Email: <input type="email" name="email" /> </p>
       <p> First name: <input type="text" name="first_name" /> </p>
       <p> Last name: <input type="text" name="last_name" /> </p>
       <input type="submit" value= "Submit">
   </form>
</body>
</html>
EmailSubscriberForm = modelform_factory(EmailSubscriber, fields=["email", "first_name", "last_name"])