django - 如何在使用 UserRegisterForm 时停止 django 以自动激活用户
问题描述
视图.py
from django.shortcuts import render, redirect
from django.contrib import messages
from django.contrib.auth.decorators import login_required
from .forms import UserRegisterForm, UserUpdateForm, ProfileUpdateForm
def register(request):
if request.method == 'POST':
form = UserRegisterForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get('username')
messages.success(request, f'Your account has been created! You are now able to log in')
return redirect('login')
else:
form = UserRegisterForm()
return render(request, 'users/register.html', {'form': form})
表格.py
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
from .models import Profile
class UserRegisterForm(UserCreationForm):
email = forms.EmailField()
class Meta:
model = User
fields = ['username', 'email', 'password1', 'password2']
使用RegisterForm注册表格django自动激活用户。我想在激活用户之前添加注册电子邮件确认。
解决方案
所以很简单,你可以花点时间commit=False
保存表格
if form.is_valid():
user=form.save(commit=False)
# sets the field to False
user.is_active=False
user.save()
username = form.cleaned_data.get('username')
messages.success(request, f'Your account has been created! You are now able to log in')
return redirect('login')
你也说过
我想在激活用户之前添加注册电子邮件确认。
为此,您可以查看以下链接
2017:https ://medium.com/@frfahim/django-registration-with-confirmation-email-bb5da011e4ef
推荐阅读
- laravel-8 - 在laravel 8中使用turbo链接时加载js文件
- javascript - 使用自定义播放器更改 YouTube 分辨率
- javascript - 如何将 fabric.js 对象转换为 SVG
- dpdk - 如何通过 DPDK API rte_malloc 跟踪内存分配?
- c - 如何使用负浮点数进行 sscanf?
- node.js - 如何缩小 MongoDB 和 Node.js 中模式的过滤范围?
- html - 将链接复制到jquery中的剪贴板
- testing - 用于测试从 ARM 模板创建的 Azure 配置的工具有哪些?
- azure - Azure 函数 - 队列触发器 - 对正在使用的库的混淆 (C#)
- java - 我想将我的数据库数据从数据库写入 excel 文件