Mam formularz HTML w Django i nie używam klasy forma Django.

Teraz chcę wiedzieć, jak mogę przetworzyć ten formularz HTML? (Metoda jest POST)

Formularz jest generowany przez xsl, ale ostateczny wygenerowany formularz jest taki:

<form method="POST" id="settingSubmit" action="/archive/agentUpdate/1">
    <input value="1" name="AgentID" datatype="Int">
    <input value=" agent 1" name="AgentName">
    <input value=" agent 1 Description" name="AgentDescription">
    <input value="submit" id="sendbutton" type="submit">
</form>

I widok:

def agentUpdate(request,id):
    agentName = request.POST['AgentName']

    return render_to_response('archive/base.html',{
        'agentName':agentName
    },
        RequestContext(request, ))

Urls.py:

urlpatterns = patterns('archive.views',

    url(r'^agentUpdate/(?P<id>\w+)/$',
        'agentUpdate',
        name='agent_Update'),
)

Błąd:

MultiValueDictKeyError at /archive/agentUpdate/2/

"Key 'AgentName' not found in <QueryDict: {}>"
0
user1223444 15 wrzesień 2012, 12:04

1 odpowiedź

Jeśli chodzi o MultiValueDictKeyError powinieneś zrobić

agentName = request.POST.get('AgentName')

Również będzie lepiej sprawdzić, czy jest to żądanie POST

if request.POST:
    agentName = request.POST.get('AgentName')

Następnie z tymi danymi możesz zrobić, co chcesz - sprawdzić, zapisz go do bazy danych, w inny sposób.

Również zamiast render_to_response możesz użyć skrótu render

return render(request, 'archive/base.html', {'agentName': agentName})
0
Alexander Larikov 15 wrzesień 2012, 08:48