我是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 我在某个地方犯了错误。任何帮助将不胜感激
提前致谢
答案 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)