Django 通过render\u to\u响应传递URL参数
我使用此代码查看.py文件Django 通过render\u to\u响应传递URL参数,django,django-forms,Django,Django Forms,我使用此代码查看.py文件 @login_required def login_edit_page(request): #bla bla return render_to_response('login_edit_page.html', variables) 问题是,当调用返回时,我还必须从URL传递一个参数。例如,URL为/edit?id=1。在本例中,我想传递id。我该如何传递 这是完整的代码 @login_required def login_edit_page(request):
@login_required
def login_edit_page(request):
#bla bla
return render_to_response('login_edit_page.html', variables)
问题是,当调用返回时,我还必须从URL传递一个参数。例如,URL为/edit?id=1。在本例中,我想传递id。我该如何传递
这是完整的代码
@login_required
def login_edit_page(request):
if request.method == 'POST':
form = LoginEditForm(request.POST)
if form.is_valid():
login1 = _login_edit(request, form, request.GET['id'])
return HttpResponseRedirect(
'/user/%s/' % request.user.username
)
id2 = request.GET['id']
name=''
url=''
Login_username =''
notes= ''
password=''
try:
login1 = login.objects.get(
id = id2,
username=request.user
)
name = login1.name
url = login1.loginUrl
Login_username = login1.login_username
notes = login1.notes
password = login1.password
except (login.DoesNotExist):
pass
form = LoginEditForm({
'name': name,
'url': url,
'Login_username': Login_username,
'notes': notes,
'password': password
})
variables = RequestContext(request, {
'form': form
})
login1 = _login_edit(request, form, id2)
return render_to_response('login_edit_page.html', variables)
你不能用你现在的方式。试试这个:
...
id2 = request.GET.get('id', None)
...
ctx = {
'form': form,
'id': id2
}
return render_to_response('login_edit_page.html', ctx,
context_instance=RequestContext(request))
注意,我在context dict中添加了id2
,因此可以通过{{id}
在模板中访问它。另外,检查如何从请求中检索url参数
另一种方法是直接从请求
中访问url参数(正如Mark Lavin所注意到的,它将在django.core.context\u处理器的情况下工作。请求
存在于模板
上下文处理器中):
但是真诚地说,你应该让你的观点更清晰,这里面有很多问题 最后一种方法假设
django.core.context\u处理器中启用了TEMPLATE\u context\u处理器
请求,但默认情况下未包含该请求。我尝试了您的解决方案,但仍然在中找到“异常值:”键“id”“@Dimitris,看一下您提供的代码片段的第7行。您仍然在使用这种获取url参数的无效方法。改用request.GET.GET('id',None)
。这一切都是因为请求不是一个常见的python dict,但QueryDict
的对象似乎并没有再次正确地传递给_login\u edit,因为我得到了一个“login matching query not existing.”来自_login\u edit的异常。在这个粘贴栏中,我还包括了“登录”和“编辑”,这与问题无关。您应该阅读以提高基本的django和python技能。
{{ request.GET.id }}