2

私はこのコードをviews.pyファイルに使用します

@login_required
def login_edit_page(request):
#bla bla
return render_to_response('login_edit_page.html', variables)

問題は、return が呼び出されたときに、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)
4

1 に答える 1

3

そのままでは使えませrender_to_responseん。これを試して:

...
id2 = request.GET.get('id', None)
...
ctx = {
    'form': form,
    'id': id2
}
return render_to_response('login_edit_page.html', ctx,
                          context_instance=RequestContext(request))

id2コンテキスト dictに追加したので、テンプレートで{{ id }}. また、リクエストから url パラメータを取得する方法も確認してください。

別のアプローチは、から直接 url パラメータに到達することです(Mark Lavin が気づいたように、が に存在するrequest場合に機能します):django.core.context_processors.requestTEMPLATE_CONTEXT_PROCESSORS

{{ request.GET.id }}

しかし、正直なところ、ビューをもっときれいにする必要があります。ビューには多くの問題があります。

于 2012-10-24T17:26:13.750 に答える