在LoginRequiredMixin中如何接收重定向字段

2024-06-02 19:10:49 发布

您现在位置:Python中文网/ 问答频道 /正文

从文档中得到:

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

但是在我的loginView(FormView)中,我找不到接收和使用form_valid()方法中的“redirect_cto”var来将用户发送回其原始部分。在

实际上,我可以在get()方法中接收它,但我认为我需要在form_valid()中使用它

拜托,我怎么能做到这一点?在


Tags: to方法name文档formviewurlfield
2条回答

您可以从request.GET检索{},因此在CBV方法中可以使用self.request.GET.get('redirect_to')。在

注意,重定向到从查询字符串获取的url可能不安全。例如,它可以链接到另一个域。Django有一个方法^{},它在登录或注销时使用该方法检查下一个url。在

我删除了get方法,而添加了get_context_data

def get_context_data(self, **kwargs):
        context = super(Login_vw, self).get_context_data(**kwargs)
        context['next'] = self.request.GET.get('redirect_to')
        return context

然后在我的卫生棉条上加上了:

^{pr2}$

然后在form_valid方法中检索“next”变量,如下所示:

next = self.request.POST.get('next')

就这样,简单地说,get_context_data接收下一个url,将其发送到模板表单,模板表单将其发送回form_valid方法。在

相关问题 更多 >