J'ai un problème avec django. J'ai créé un formulaire dans mon application où je peux prendre les détails d'un client. Maintenant, je veux créer un formulaire qui peut me permettre d'éditer un formulaire. Cependant, j'ai quelques problèmes quand je vais dans/index/edit_client/1, j'ai cette erreur.Besoin d'aide dans la forme 'variable locale' de Django 'référencé avant affectation'
local variable 'form' referenced before assignment
Je ne sais pas quelle est la raison pour laquelle je l'ai obtenu cette erreur, mais de ce que je l'ai regardé, il ne facilite pas les choses à moins bien sûr il y a une autre façon comment créer un formulaire de modification pour modifier la les clients forment. Voici quelques sorties qui peuvent être utiles aussi.
# urls.py
urlpatterns = patterns('',
(r'^index/$', login_required(direct_to_template), { 'template': 'index.html' }),
(r'^index/clients/$', client_info),
(r'^index/clients_details/(?P<id>\d+)/$', clients_details),
(r'^index/edit_client/(?P<id>\d+)/$', edit_client),
)
# views.py
@login_required
def edit_client(request, id=1):
clients_list = Client.objects.filter(pk=id)
if request.method == 'POST':
form = ClientForm(request.POST or None)
if form.is_valid():
form.save()
return HttpResponseRedirect('/index/clients/')
else: form = ClientForm()
return render_to_response('edit_client.html', {'form': form}, context_instance=RequestContext(request))
#edit_client.html
{% extends "base.html" %}
{% block content %}
<font face="verdana,news gothic,arial,heltevica,serif">
<h3>Edit Client</h3>
</font>
<form method= "POST" action="">
<font face="verdana,news gothic,arial,heltevica,serif">
<div id="form">
<table>
{{form.as_table}}
</table>
<div align="center" STYLE=" margin-right:190px">
<input type="submit" value="Submit" STYLE="background-color:#E8E8E8; color:#181818 "/>
</div>
</div>
</form>
{% endblock %}
Eh bien, cela a fait disparaître ce message d'erreur, mais pour une raison quelconque, mes formulaires client d'édition me donne un formulaire vierge propre. Je devrais obtenir un formulaire avec des données stockées déjà que je peux ensuite changer et enregistrer. – Shehzad009
il n'y a pas de gestionnaire GET, bien sûr, vous voyez un formulaire vide – leoluk
J'ai fait quelque chose comme ça. – Shehzad009