V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
nichan
V2EX  ›  Django

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

  •  
  •   nichan · Jul 3, 2012 · 4066 views
    This topic created in 5046 days ago, the information mentioned may be changed or developed.
    比如 匿名用户输入任何网址都会返回到登陆页面,无论这个页面存不存在。
    而一旦用户登陆就可以正常使用url

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

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