python - 在第一个视图重定向后,我无法让我的第二个 django 视图验证发布请求
问题描述
我有一个问题,我想要第二个视图来验证“发布”请求是否得到验证,执行代码集。这是一个例子:
from django.shortcuts import render, redirect
from django.http import HttpResponse, Http404
from django.urls import reverse
from django.template import loader
from django.core.mail import send_mail, mail_admins
from .forms import Register
# Importing Models
from .models import Users
# Create your views here.
# Create your views here.
def register(request):
if request.method == "POST":
forms = Register(request.POST)
if forms.is_valid():
f_name = forms.cleaned_data["first_name"]
l_name = forms.cleaned_data["last_name"]
em = forms.cleaned_data["email"]
num = forms.cleaned_data["phone"]
user = Users(
first_name=f_name,
last_name=l_name,
email=em,
phone=num
)
user.save()
request.session['f_name'] = f_name
request.session['status'] = True
request.session['email'] = em
return redirect('success')
else:
forms = Register()
forms = Register()
title = "Join now"
context = {
'title':title,
'forms':forms,
}
return render(request, 'register/register.html', context)
def success(request):
#This part wont validate after the post redirect?
**if request.method == 'POST':**
welcome = request.session['f_name']
email = request.session['email']
# User Mailing
subject = f'Welcome to JSG {welcome}'
message = 'Testing'
from_email = 'mydev1996@gmail.com'
recipient_list = [email]
user_mail = send_mail(
subject,
message,
from_email,
recipient_list,
fail_silently = False,
)
# Admin Mailing
subject = f'Welcome to JS {welcome}'
message = 'Testing'
admin_mail = mail_admins(
subject,
message,
fail_silently = False,
)
context = {
'welcome' : welcome,
}
else:
print("error is here")
raise Http404
return render(request, 'register/success.html', context)
抱歉,如果这是一个愚蠢的问题,因为我仍在学习,而我在 django 中最难的部分是将事物从一种观点转移到另一种观点。我也很想知道“会话”是否是跨视图移动对象发布数据的正确方法?还是有更安全的方法?
解决方案
推荐阅读
- javascript - 角度的循环误差
- swift - 在选项卡之间切换时如何创建交叉溶解动画
- node.js - 如何在 node.js 中显示警报消息
- r - 从数据框的行制作列向量
- asp.net - gridview 的分页不能正确显示数据
- image - 如果我将 id 的值更改为数据库,则使用 tinymce 上传图像时出现错误“无法上传图像:HTTP 错误:500”
- javascript - 什么是 ESLint 规则以防止对象道具冒号后换行
- javascript - Ionic 4 更改带有自定义图标的 ion-tab-button
- python - 从表示python中Unicode代码点的字符串中获取Unicode字符?
- ajax - 加载资源失败:在我的 wordpress 网站中的 Safari 上请求超时