gpt4 book ai didi

python - 登录后如何重定向到用户请求的 url - Django loginrequiredmixin

转载 作者:行者123 更新时间:2023-12-04 02:02:21 29 4
gpt4 key购买 nike

我正在尝试使用 Django LoginRequiredMixin 限制对 View 的访问。如果用户未登录,它将重定向到登录页面。但问题是登录后它没有重定向到用户输入的url,而是转到默认页面?

例如,用户尝试登录页面 site/site-create。如果用户未登录,则转到登录页面。登录后进入默认登录页面。这里我想将用户重定向到site/site-create页面。示例 View

class CreateSite(LoginRequiredMixin, CreateView):
model = Site
fields = ['name','site_category','description',]

登录/views.py

class LoginViewClass(FormView):
"""
Provides the ability to login as a user with a username and password
"""
form_class = AuthenticationForm
template_name = 'login/login_view_class.html'

def get_context_data(self, **kwargs):
context = super(LoginViewClass, self).get_context_data(**kwargs)
create_all_menus(ALL_MENUS)
return context

def post(self, request):
username = self.request.POST['username']
password = self.request.POST['password']
user = authenticate(username=username, password=password)

Edit--> 登录views.py 添加 我怎样才能做到这一点?谢谢你

最佳答案

LoginRequiredMixin 将重定向到 login_url 添加原始 URL 作为参数 redirect_field_name (link to code) .

login_urlredirect_field_name 是您可以在 View 中定义的两个属性,如下所示:

class MyView(LoginRequiredMixin, View):
login_url = '/login/'
redirect_field_name = 'redirect_to'

此示例将重定向到 /login/?redirect_to={current_url}

这两个字段在不指定时有默认值:


在您的情况下,您的登录 View 似乎没有采用 next URL 参数。这两个选项是:

  • 使用 next URL 参数更改登录 View 。
  • 通过添加 redirect_field_name = 'your_field_name'
  • 更改您的 View 以发送正确的重定向字段名称

关于python - 登录后如何重定向到用户请求的 url - Django loginrequiredmixin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46337472/

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