如何使不同的用户组使用的urls.py不一样?

2012-07-03 01:07:47 +08:00
 nichan
比如 匿名用户输入任何网址都会返回到登陆页面,无论这个页面存不存在。
而一旦用户登陆就可以正常使用url

可能我这种想法比较幼稚啊, 刚刚才接触Django, 有没有一种方法在urls.py文件里设置if语句检测用户是否登陆?
3368 次点击
所在节点    Django
8 条回复
raptium
2012-07-03 01:16:50 +08:00
不是在 urls.py 設置的,應該在 view 裏面用 login_required 這個 decorator

https://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.decorators.login_required
raptium
2012-07-03 01:19:10 +08:00
哦 我可能理解錯誤了 樓主的意思是任何 url ……
nichan
2012-07-03 01:21:59 +08:00
@raptium 这个似乎只能每次设置一个view?
刚才在urls里写上(r'^', 'auth.views.login_user'),
发现无论在地址栏里写什么url都会跳转到登陆界面, 如果未登录用户使用这条记录, 已登陆的用户使用正常的url模式, 应该安全性很高吧?而且一次设置, 全局都可以使用。
到底可不可以这样……
fanzeyi
2012-07-03 01:23:43 +08:00
楼主想法很棒啊…… 不过貌似没看见过相关实现
raptium
2012-07-03 01:38:08 +08:00
我觉得这得用 middleware 实现了,应该也不会太麻烦
nichan
2012-07-03 01:43:23 +08:00
@raptium 具体应该怎么做?
貌似直接在urls.py里写if语句他会不认……返回No patterns
nichan
2012-07-03 01:50:36 +08:00
貌似是可以的!!刚才参数写错了, 在urls.py里写if是可以的……现在的问题是 如何判断用户是否登陆?
luztak
2012-07-03 03:44:15 +08:00
@nichan 用Cookie吧,登录之后存Cookie.
投奔Tornado吧骚年,self.current_user搞定一切!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/41225

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX