我是django的新手,我在Django中熟悉不同的选项。我创建了一个基于类的视图,需要用户身份验证才能查看网页。我正在使用内置的LoginView。
当url模式指定如下
figure {
margin: 0;
float: left;
}
.container img {
width: 45%;
}
figcaption {
width: 30%;
float: left;
clear: right;
display: inline;
}
.clearfix::after {
content: “”;
display: table;
clear: both;
}
它被正确地重定向到登录页面。
但是当我给出
<div class="container clearfix">
<figure class="imgcol">
<figcaption> Experimentation with color and texture. </figcaption>
<img src="" alt="Irfan Web Developer" />
<figcaption> Playing with blending mode in photoshop. </figcaption>
<img src="" alt="Irfan Web Developer" />
<figcaption> Trying to create 80's style glow. </figcaption>
<img src="" alt="Irfan Web Developer" />
<figcaption> Drips created using Photoshop brushes </figcaption>
<img src="" alt="Irfan Web Developer" />
<figcaption> Creating shapes using repetition. </figcaption>
<img src="" alt="Irfan Web Developer" />
</figure>
</div>
我在尝试访问需要用户身份验证的页面时收到404。 但是当我在浏览器中手动转到该URL时,它的工作原理非常好。 这是为什么?这两种情况都不适用吗?
答案 0 :(得分:0)
听起来您需要在设置中设置LOGIN_URL
:
LOGIN_URL = '/restaurant/login/'
或者,最好使用URL模式名称,然后在更改登录URL时不必更新设置
LOGIN_URL = 'login'
答案 1 :(得分:0)
不确定我是否完全理解您的问题,请尝试给出一个愚蠢的答案。
Django 2.1.7
# settings.py
LOGIN_URL = 'admin:login'
login_required
装饰器将为您定向正确的登录页面。from django.contrib.auth.decorators import login_required
@login_required()
def month_archive(request, year, month):
production_list = Production.objects.month_archive(year, month)
context = {'production_list': production_list}
return TemplateResponse(request, 'production/production_list.html', context)
from django.contrib.auth.decorators import login_required
urlpatterns = [
path('', login_required(views.ProductionList.as_view()), name='production-list'),
path('<int:year>/<int:month>/', views.month_archive, name='production-month'),
]