使用django提交表单 - 在作业

时间:2018-04-20 09:57:04

标签: python django django-rest-framework

  1. 为什么它之前引用此错误的本地变量'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'})
    

1 个答案:

答案 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():
    ...