Django管理员登录特定的URL [英] Django admin login for particular url
问题描述
我正在使用Django管理员进行电影模式的管理操作,如:
i'm using Django admin for admin operation on Movies model like :
urls.py
url(r'^admin/', include(admin.site.urls)),
url(r'^admin/movies/', include('movies.adminurls')),
当请求像 * * http://127.0.0.1:8000 / admin / **
它显示管理员登录页面
有电影模型,我可以从那里管理。
when request comes like **http://127.0.0.1:8000/admin/**
it shows admin-login page
there is Movie model which i can mange from there.
因为电影模型有15个字段,从管理网站填写100部电影的数据将是一个乏味的任务。
since Movies model have 15 fields , it would be tedious task to fill in data for 100 movies from admin site.
创建了一个视图 add_movie ,其中我将通过json数据填充Movies表。
movies.adminurls
For that i have created a view add_movie in which i'll populate Movies table through json data. movies.adminurls
url(r'^add/', 'add_movie' , name="admin_add_movie"),
for add_movie 请求就像
http://127.0.0.1:8000/admin/movies/add/
如果超级用户未登录,则应显示管理员登录表单。当超级用户成功登录时,它应该重定向到 add_movie 视图
if superuser is not logged in then it should display admin-login form. and when superuser is successfully logged in then it should redirect to add_movie view
所以
是否可以显示该URL的admin-login?
is it possible to show admin-login for that url?
推荐答案
如果用户不是超级用户,重定向到管理员登录表单
Redirect to the admin login form if user is not superuser:
def add_movie(request, *args, **kwargs):
if not (request.user.is_authenticated() and request.user.is_superuser):
return HttpResponseRedirect(settings.LOGIN_URL+'?next=/admin/movies/add/')
do_your_stuff(...)
如果是API,您可能需要提高 PermissionDenied
。
If it is an API, you may want to raise PermissionDenied
instead.
这篇关于Django管理员登录特定的URL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!