V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nichan
V2EX  ›  Django

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

  •  
  •   nichan · 2012-07-03 01:07:47 +08:00 · 3449 次点击
    这是一个创建于 4531 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如 匿名用户输入任何网址都会返回到登陆页面,无论这个页面存不存在。
    而一旦用户登陆就可以正常使用url

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

    https://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.decorators.login_required
    raptium
        2
    raptium  
       2012-07-03 01:19:10 +08:00
    哦 我可能理解錯誤了 樓主的意思是任何 url ……
    nichan
        3
    nichan  
    OP
       2012-07-03 01:21:59 +08:00
    @raptium 这个似乎只能每次设置一个view?
    刚才在urls里写上(r'^', 'auth.views.login_user'),
    发现无论在地址栏里写什么url都会跳转到登陆界面, 如果未登录用户使用这条记录, 已登陆的用户使用正常的url模式, 应该安全性很高吧?而且一次设置, 全局都可以使用。
    到底可不可以这样……
    fanzeyi
        4
    fanzeyi  
       2012-07-03 01:23:43 +08:00   ❤️ 1
    楼主想法很棒啊…… 不过貌似没看见过相关实现
    raptium
        5
    raptium  
       2012-07-03 01:38:08 +08:00   ❤️ 1
    我觉得这得用 middleware 实现了,应该也不会太麻烦
    nichan
        6
    nichan  
    OP
       2012-07-03 01:43:23 +08:00
    @raptium 具体应该怎么做?
    貌似直接在urls.py里写if语句他会不认……返回No patterns
    nichan
        7
    nichan  
    OP
       2012-07-03 01:50:36 +08:00
    貌似是可以的!!刚才参数写错了, 在urls.py里写if是可以的……现在的问题是 如何判断用户是否登陆?
    luztak
        8
    luztak  
       2012-07-03 03:44:15 +08:00
    @nichan 用Cookie吧,登录之后存Cookie.
    投奔Tornado吧骚年,self.current_user搞定一切!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1016 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 20:20 · PVG 04:20 · LAX 12:20 · JFK 15:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.