django - 我如何覆盖 django allauth 注册成功 URL
问题描述
我正在使用allauth开发一个项目,并且我正在使用客户用户模型,我希望将新注册的用户重定向到与login_redirect_url完全不同的不同页面(比如个人资料表单页面),我已经尝试过了这边走
知道我怎样才能完成这项工作吗?
from django.shortcuts import get_object_or_404, redirect, render
from allauth.account.views import LogoutView
from django.urls import reverse_lazy
from allauth.account.views import SignupView
from django.views.generic import TemplateView
from .models import CustomUser
class Signup(SignupView):
success_url = reverse_lazy('business:company_profile')
def get_success_url(self):
return self.success_url
解决方案
我不确定是否有办法覆盖SignUp
重定向,因为当您在应用程序中注册时,您也会登录,这将使用login_redirect_url
.
如果您覆盖login_redirect_url
(文档),如果某些字段丢失/为空,您可以更新您的逻辑并将用户重定向到他的个人资料?
def get_login_redirect_url(self, request):
if not request.user.your_custom_field:
path = "/accounts/{username}/"
return path.format(username=request.user.username)
else
return "/"
is_first_visit
您还可以通过在CustomerUser
模型上添加一个布尔值(使用default=True
)来实现另一个逻辑,并False
在他第一次访问后将其设置为。
推荐阅读
- c++ - c++ 显示给文件中得分最高的用户
- html - ion-align-items 类不居中 ionic HTML 元素
- r - 如何在 R 中记录环境变量?
- excel - Excel 持续评估是否满足条件
- list - 如何在 terraform locals 中迭代对象列表
- react-native - 通过 react-native-web 找出操作系统
- vb.net - 如何解决——无效的索引。(来自 HRESULT 的异常:0x8002000B (DISP_E_BADINDEX))?
- perl - 如何只切片定义的值?
- android - kotlin 从不同的 kotlin 类文件开始新活动
- python - 使用 if 条件从现有 CSV 创建列