python - How to save user input in database from django form
问题描述
I hava created a small project in django where i have created a form and with 3 fields now i want if user type his name , email and invite message then it should save in databse.
i am unable to save the data in database.
form.py
from datetime import datetime
from bootstrap_datepicker_plus import DatePickerInput
from django.contrib.admin.widgets import AdminDateWidget
from bootstrap_datepicker_plus import DateTimePickerInput
from bootstrap_datepicker_plus import TimePickerInput
# from .models import check
class Email_app(forms.Form):
Name = forms.CharField()
Email = forms.EmailField()
Invite = forms.CharField()
start_date = forms.DateField(label="Start_Date", widget=DatePickerInput())
start_time = forms.DateField(label="Start_Time", widget=TimePickerInput())
end_date = forms.DateField(label="End_Date", widget=DatePickerInput())
end_time = forms.DateField(label="End_Time", widget=TimePickerInput())
def __str__(self):
return self.Name
Form > enter image description here
below is the view.py
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email.utils import formatdate
# from email import encoders
from email.encoders import encode_base64
import os,datetime
COMMASPACE = ', '
# from django.shortcuts import render
# Create your views here.
from django.shortcuts import render
from operators.settings import EMAIL_HOST_USER
from . import forms
from django.core.mail import send_mail
# Create your views here.
#DataFlair #Send Email
def email_app(request):
sub = forms.Email_app()
if request.method == 'POST':
sub = forms.Email_app(request.POST)
subject = 'Welcome to Email Event'
message = 'Hope you are enjoying your Django'
recepient = str(sub['Email'].value())
invite = str(sub['Invite'].value())
start_date = str(sub['start_date'].value())
start_time = str(sub['start_time'].value())
end_date = str(sub['end_date'].value())
end_time = str(sub['end_time'].value())
send_mail(subject,
message, EMAIL_HOST_USER, [recepient], fail_silently = False)
print(start_date)
print(end_date)
send_mail1(recepient,invite)
return render(request, 'Email_app/success.html', {'recepient': recepient})
return render(request, 'Email_app/index.html', {'form':sub})
i am taking the input as well in view.py but i need help to save the same input from user in database. Though it is easy to save from model.py but i am working on form. So is there any way to save the inputs in database from form.py.
解决方案
我现在假设你应该已经想出了一个解决方案,但无论如何......
为了保存到您的数据库中,因为您已经form.py
定义了您只需要form.save()
在您的视图中调用。
在你的views.py
def email_app(request):
if request.method == 'POST':
form = Email_app(request.POST)
# Do Something
form.save() #<-- saving the form to the database
return render(request, 'Email_app/success.html', {'recepient': recepient})
else:
form = Email_app()
return render(request, 'Email_app/success.html', {'recepient': recepient})
我建议您将表单命名为:EmailForm()
为了避免代码中的任何冲突和不必要的错误
推荐阅读
- primeng - 如何将primeng p-dataTable迁移到p-table?
- ssis - Hubspot(CRM)数据仓库
- delphi - 如何获取 Powerpoint 文件的总持续时间
- java - 如何获取拦截器中操作 url 中定义的参数
- c# - 我收到警告:您正在尝试使用“新”关键字创建 MonoBehaviour
- excel - 从表单返回到模块
- node.js - 使用 HTTP 模块的 AWS Lambda 函数未发出任何请求
- spring - 如何获取 Spring 应用程序中所有属性的映射?
- python - 无法将字符串转换为浮点数(熊猫)
- javascript - How to use innerHTML or innerText to insert into the Evernote editor which is the rich text editor?