gpt4 book ai didi

django - 成功 URL 重定向不适用于 django-allauth 中的自定义 View

转载 作者:行者123 更新时间:2023-12-04 05:06:49 37 4
gpt4 key购买 nike

我创建了自己的类 LocalSignup,它使用我自己的表单和我自己的验证逻辑扩展了基本的 django-allauth SignupView 类。问题是,成功后我无法将 View 重定向到除 settings.py 中的 django LOGIN_REDIRECT_URL 之外的任何内容。我在基于类的 View 中包含了一个 success_url 字段;我已经尝试覆盖 get_success_url 函数(见下文);我还尝试使用 LocalSignup.as_view(success_url="/add_account_select/") 传递我的成功重定向。没有一个有效。对我做错了什么有什么想法吗?

class LocalSignup(SignupView):
form_class = AllAuthUserForm
template_name = 'signup/social_login.html'
success_url = '/add_account_select/' #reverse_lazy('add_account_select')

def get_success_url(self):
return '/add_account_select/' #reverse('add_account_select')

def dispatch(self, request, *args, **kwargs):
# self.sociallogin = request.session.get('socialaccount_sociallogin')
return super(LocalSignup, self).dispatch(request, *args, **kwargs)

def form_valid(self, form):
ret = super(LocalSignup, self).form_valid(form)
### MY FORM VALIDATION LOGIC
return ret

def get_context_data(self, **kwargs):
ret = super(LocalSignup, self).get_context_data(**kwargs)
ret.update(dict(username=self.sociallogin.account.user.first_name,
photo_url=self.sociallogin.account.get_avatar_url() ))
return ret

最佳答案

在默认 View 中,如果登录表单 View 中有“下一个”字段,allauth 将自动重定向到它。

<input id="login_redirect" type="hidden" name="next" value="#" />

填写表格

      <form method="POST" action="{% url "account_login" %}">
{% csrf_token %}
{{form}}
<input type="hidden" name="next" value="/add_account_select/" />
<button type="submit" class="btn btn-primary">Sign IN</button>
</form>

关于django - 成功 URL 重定向不适用于 django-allauth 中的自定义 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15440702/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com