我正在构建一个Django项目demonstration
,其中包含3个应用程序(app,blog,frontend)
我面临的挑战 如下:
我想限制对应用app
的访问权限以仅允许注册用户。
换句话说,限制访问app
django app。
在做了一些研究后,偶然发现了以下链接:
答案 0 :(得分:1)
您的中间件存在取决于您,唯一重要的是它位于您的sys.path
中。
另请注意,Best way to make Django's login_required the default中的中间件依赖于硬编码的网址(至少在settings
中是硬编码的),这是一种DRY违规行为。这可以通过对reverse_lazy
应用的每个网址使用app
来解决,但此时您只需更快地使用app
1}} login_required
视图进行装饰} p>
答案 1 :(得分:1)
如何解决:
来自views.py
app目录的app
内部,
补充说:
from django.contrib.auth.decorators import login_required
并且,在调用视图之前:
@login_required(login_url="/admin/") #location where users are going to be able to do the login
def profile(request): #view
这意味着:一旦用户未登录并尝试访问该视图,他/她/它将被重定向到登录屏幕