V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
no13bus
V2EX  ›  问与答

求助下 django 的用户登陆成功后跳转至 index,需要显示用户名。这个全局变量如何传递?

  •  
  •   no13bus · 2014-06-24 23:37:12 +08:00 · 7548 次点击
    这是一个创建于 3834 天前的主题,其中的信息可能已经有所发展或是发生改变。
    views里面的代码

    index.html模版里面的代码


    HttpResponseRedirect(reverse('index'))只是跳转,但是没法传递全局变量或者变量。不知道我上面views里面的代码能否这样传递。有没有更好的办法?
    7 条回复    2014-06-25 15:20:44 +08:00
    ericFork
        1
    ericFork  
       2014-06-25 00:20:05 +08:00   ❤️ 1
    如果你只是想传递 request 或者 user 的话,直接在 settings 里添加 context processor 更简单一些,比如添加了 django.core.context_processors.request 就可以在模板里直接使用 request 对象了
    delo
        2
    delo  
       2014-06-25 00:30:18 +08:00   ❤️ 1
    用户名你不是已经可以通过request.user.username获得了么,login之后request.user里就是当前用户对象了
    paloalto
        3
    paloalto  
       2014-06-25 01:10:23 +08:00   ❤️ 1
    我习惯存在 session 里。。。
    jianghu52
        4
    jianghu52  
       2014-06-25 08:49:45 +08:00   ❤️ 1
    up paloalto 我也习惯放session
    no13bus
        5
    no13bus  
    OP
       2014-06-25 09:27:50 +08:00
    @delo 其实我的意思是login之后跳转到index里面的时候,index要知道username的值,是不是就是通过data['request'] = request来将request传递到模板里面来使得request.user.username能渲染成功。
    delo
        6
    delo  
       2014-06-25 09:31:51 +08:00   ❤️ 1
    @no13bus 哦哦,以为你代码注释里提了两个问题,我理解不太到位。用1楼的方法就OK了 :)
    no13bus
        7
    no13bus  
    OP
       2014-06-25 15:20:44 +08:00
    @paloalto
    @jianghu52
    多谢。看了下手册的session 确实这样的解决办法好。总觉得吧request整个对象传递到模板里面太大了。
    再多问个问题。form验证里面有个auto_id属性,但是django总是form没有这个key,总报错。
    email=forms.EmailField(required=True,auto_id='%s',error_messages={'required':u'邮箱必须','invalid':u'请输入正确的邮箱'},widget=forms.TextInput(attrs={''class':'input-xlarge'}))
    (这个目的就是让form生成的input标签里面的id='email' 而不是默认的id='id_email'。

    下面是我自己的一个笨的解决办法:
    email=forms.EmailField(required=True,error_messages={'required':u'邮箱必须','invalid':u'请输入正确的邮箱'},widget=forms.TextInput(attrs={'id':'email','class':'input-xlarge'}))

    要是auto_id能用就好了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1060 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:07 · PVG 02:07 · LAX 10:07 · JFK 13:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.