Django 通过render\u to\u响应传递URL参数

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):

我使用此代码查看.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):
    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 }}