Python 局部变量';响应数据';作业前引用的表单只适用于一页,但现在我再次尝试使用该表单时,会弹出此错误
我有一个很好用的评论表。所以我决定在我的网站的另一个页面上采用这种评论形式。但在赋值显示之前引用的局部变量“response_data” 这是我的追踪Python 局部变量';响应数据';作业前引用的表单只适用于一页,但现在我再次尝试使用该表单时,会弹出此错误,python,django,Python,Django,我有一个很好用的评论表。所以我决定在我的网站的另一个页面上采用这种评论形式。但在赋值显示之前引用的局部变量“response_data” 这是我的追踪 Traceback: File "/env/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 132. response = wrapped_callback(request, *callbac
Traceback:
File "/env/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
132. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/env/local/lib/python2.7/site-packages/django/views/decorators/csrf.py" in wrapped_view
58. return view_func(*args, **kwargs)
File "/comments/views.py" in comment_create_view
49. return JsonResponse(response_data)
Exception Type: UnboundLocalError at /comment/create/
Exception Value: local variable 'response_data' referenced before assignment
我相信回溯告诉我表单有一些语法错误,我不理解,因为相同的表单适用于其他页面
目前我有
@login_required
def comment_thread(request, id):
comment = Comment.objects.get(id=id)
form = CommentForm()
context = {
"form": form,
"comment": comment,
}
return render(request, "comments/comment_thread.html", context)
in forms.py
class CommentForm(forms.Form):
comment = forms.CharField(
widget=forms.Textarea(attrs={"placeholder": "leave"})
)
#hidden_field = forms.CharField(widget=forms.HiddenInput())
def __init__(self, hidden_data=None, data=None, files=None, **kwargs):
super(CommentForm, self).__init__(data, files, kwargs)
self.helper = FormHelper()
self.helper.form_show_labels = False
self.helper.add_input(Submit('submit', 'leave', css_class='btn btn-default'))
if hidden_data:
self.helper.add_input(Hidden('post_id', hidden_data['post_id']))
self.helper.add_input(Hidden('origin_path', hidden_data['origin_path']))
if hidden_data.get('parent_id', None):
self.helper.add_input(Hidden('parent_id', hidden_data['parent_id']))
In html
<form method="POST" action='{% url "comment_create" %}'>{% csrf_token %}
<input type='hidden' name='parent_id' value='{{ comment.id }}' />
{% crispy form form.helper %}
<!-- <input type='submit' class='btn btn-default' value='Add reply'/> -->
</form>
在贴子页面,它工作得很好,因为我有这样的
def post(请求,缓动):
在代码中,当您为响应数据赋值时,将其拼写为response\u dat
try:
post = Post.objects.get(id=post_id)
except:
response_dat = {"code":400,"message":"Post does not exists"}
return JsonResponse(response_data)
应该是
try:
post = Post.objects.get(id=post_id)
except:
response_data = {"code":400,"message":"Post does not exists"}
return JsonResponse(response_data)
啊-我看到你添加了dat-a…我的错误,但我仍然在赋值之前引用了局部变量“response_data”?你仍然得到相同的错误吗?原始版本位于代码的第49行:comment\u create\u view 49中的文件“/comments/views.py”。返回JsonResponse(response_data)如果是,发生错误的代码是什么?
try:
post = Post.objects.get(id=post_id)
except:
response_dat = {"code":400,"message":"Post does not exists"}
return JsonResponse(response_data)
try:
post = Post.objects.get(id=post_id)
except:
response_data = {"code":400,"message":"Post does not exists"}
return JsonResponse(response_data)