gpt4 book ai didi

python - 需要Django 'local variable '表单中的帮助(“分配前已引用”)

转载 作者:行者123 更新时间:2023-12-03 08:14:05 25 4
gpt4 key购买 nike

我在django有问题。我已经在我的应用程序中创建了一个表单,可以在其中获取客户的详细信息。现在,我想创建一个表格,可以让我编辑表格。但是,当我转到/index/edit_client/1时遇到一些问题,出现此错误。

local variable 'form' referenced before assignment

我不知道出现此错误的原因是什么,但是从我的观察来看,这无济于事,除非当然还有另一种方法来创建编辑表单来编辑客户表单。这里有一些输出也可能会有所帮助。
# 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 %}

最佳答案

这将始终运行:

return render_to_response('edit_client.html', {'form': form}

但是,如果 request.method不是 POST,则不会为 form分配任何内容。

固定代码:
@login_required 
def edit_client(request, id=1):
clients_list = Client.objects.filter(pk=id)
form = ClientForm()
if request.method == 'POST':
form = ClientForm(request.POST or None)
if form.is_valid():
form.save()
return HttpResponseRedirect('/index/clients/')
return render_to_response('edit_client.html', {'form': form}, context_instance=RequestContext(request))

关于python - 需要Django 'local variable '表单中的帮助(“分配前已引用”),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3881601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com