Django管理员登录特定的URL [英] Django admin login for particular url

查看:92
本文介绍了Django管理员登录特定的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆