为什么它之前引用此错误的本地变量'user' 分配 下面给出的是我的代码 add_new_vendor这是我的功能 这里显示错误
/ add_new_vendor /的UnboundLocalError 分配前引用的局部变量'user'
Request Method: POST
Request URL: http://freedomclub.in/add_new_vendor/
Django Version: 1.9
Python Executable: /usr/local/bin/python
Python Version: 2.7.14
@api_view(['POST'])
def add_new_vendor(request):
if request.method == 'POST':
merch =
Profile.objects.filter(vendor_pincode=request.POST.get('vendor_pincode'
, ''),
vendor_category=request.POST.get('vendor_category'
, '')).count()
resp_data = {}
vendor_name = request.POST.get('vendor_name', '')
user_id = request.POST.get('user_id', '')
if merch == 0:
user = Profile.objects.create(
user_id=user_id,
vendor_name=vendor_name)
user.save()
if merch > 0:
return Response({'error': False, 'status': 202,
'message': 'Merchant already avaliable'})
if user == 1:
return Response({'error': False, 'status': 200,
'message': 'Registration Complete'})
return Response({'error': False, 'status': 201,
'message': 'Sorry Please Try Again'})
答案 0 :(得分:1)
您收到错误是因为您尝试在未定义的情况下访问user
。
您的变量merch
是一个查询集,而user
是一个配置文件实例。
merch = Profile.objects.filter(vendor_pincode=request.POST.get('vendor_pincode'
, ''),
user = Profile.objects.create(
user_id=user_id,
vendor_name=vendor_name)
因此将它们与整数进行比较是没有意义的。
if merch == 0:
...
if merch > 0:
...
if user == 1:
这些条件都不会成真。你想在这里查看什么?
也许您想使用exists()
检查merch
是否存在:
if not merch.exists():
...