如何解决需要登录 Mixin 在我什至没有包含它的视图上起作用django
所以,我希望我的网站内容只对注册用户可见,所以我在除了登录和注册视图之外的大多数视图上都放置了“LoginrequiredMixin”和“@login_required”标签。现在,对于注册,我想在注册前给注册者一个选择(无论他们是在校大学生还是校友/应届毕业生),我是这样做的:
class choice(View):
template = "network/choice.html"
def get(self,request):
form = ChoiceForm()
return render(request,self.template,{
"form": form,"message": "Are you a curent student or an alumni/about to graduate"
})
def post(self,request):
form = ChoiceForm(request.POST)
if form.is_valid():
current = form.cleaned_data["current"]
if current:
return HttpResponseRedirect('accounts/register/current')
else:
return HttpResponseRedirect('accounts/register/alum')
其中 ChoiceForm 只包含一个布尔字段,“register/str:type”是我的注册 URL。
但是在我提交选择表之后:
<form action="{% url 'network:choice' %}" method="post">
{% csrf_token %}
{{ form|crispy }}
<br>
<input type="submit" value="Proceed"
</form>
我被带到的网址是:
/accounts/login/?next=/register/current
(我没有在注册视图中包含任何身份验证检查,这没有任何意义,哈哈)
我可能出错的地方是:
因为我希望任何想要访问受限页面的人都被重定向到登录页面,所以我定义了我的 Urlpattern 如下:
path('accounts/login/',views.login_view.as_view(),name="login_view"),path('accounts/register/<str:type>',views.register.as_view(),name="register"),
其中 'accounts/login' 是 django 使用 login_required 标签重定向到的路径。我在这里做错了吗?
This 是我的注册视图,尽管我很确定这不是问题所在,因为即使我输入 url 'register/current
',该视图甚至都没有加载。我仍然被重定向到 accounts/login/?next=/register/current
网址模式:
path('',views.index,name='index'),path('new/<str:type>',views.new_page.as_view(),name="new"),path('<str:type>/<str:name>',views.page.as_view(),name="page"),path('logout',views.logout_view,name="logout_view"),path('accounts/login/',path('choice',views.choice.as_view(),name="choice"),
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。