在url / templates中获取/嵌入用户ID

时间:2010-07-05 22:43:42

标签: django

我是django的新手,我想更新django数据库中的一些内容 为此,我写了一个小视图功能。看起来像这样

def status_change(request,id):
    instance = get_object_or_404(register,id=id)
    if request.method == 'POST':
       rform = registerForm(instance=instance, data=request.POST)
       if rform.is_valid():
          instance = rform.save()
          return render_to_response('home.html')
    else:
        rform = registerForm(instance=instance)
        return render_to_response('status_change.html',{'rform':rform}) 

我想将此“id”从模板传递到“视图”。 我的网址像这样lopk

      (r'^status/(?P<id>\d+)$', views.status_change),

当我使用

      (r'^status/(?P<id>\d+)$', views.status_change, name ='status_change'),

它在这一行上咆哮为语法错误
在我的模板中我有

<a href = "/status/{{user.id}}">Change Status</a>

但是这整件事并没有从模板/网址获取id 我在某个地方犯了错误。任何帮助将不胜感激

提前致谢

3 个答案:

答案 0 :(得分:1)

你没有给予user任何东西。传递RequestContext

并使用{% url %}

语法错误来自元组不能有命名参数的事实。也许你想要url()

答案 1 :(得分:1)

如果您需要当前用户的ID,您还可以使用django的请求上下文处理器http://docs.djangoproject.com/en/dev/ref/templates/api/#django-core-context-processors-request,这样您就可以通过{{ request.user.id }}访问它了。

答案 2 :(得分:1)

感谢每一个人 我有一个简单的方法,但我不知道这是一个很好的做法 而不是从模板/网址获取用户ID 我简单地把这个东西放在我的代码中,它工作正常

def status_change(request):
    instance = get_object_or_404(register,pk=request.user.id)