【问题标题】:i want to show duplicate value error on front end我想在前端显示重复值错误
【发布时间】:2018-01-08 05:53:58
【问题描述】:

我在数据库中有一个 query_name 字段。我希望每个值都应该是唯一的,所以我更改了它的约束并添加了 unique=true。 现在我希望如果用户输入重复值然后错误重复值显示给用户。当前错误仅在后端显示

这是我在 python 中的代码

def save_report(request):
    if request.method == 'POST':
        print(request.POST.dict())
        data_dict = request.POST.dict()
        query_json = {}
        #query json data
        query_json['data_src_name'] = data_dict['data_src_name']
        query_json['fields']        = data_dict['fields']
        query_json['group_by']      = data_dict['group_by']
        query_json['order_by']      = data_dict['order_by']
        query_json['where']         = data_dict['where']
        query_json['limit']         = data_dict['limit']
        query_json                  = json.dumps(query_json)
        report_creation_obj = ReportCreationData.objects.create(
                            query_json       = query_json, 
                            data_source_name = data_dict['data_src_name'], 
                            query_name       = data_dict['query_name'], 
                            mail_body        = data_dict['mail_body'])

        report_creation_obj.save()

        return HttpResponse('success')

    else:
        return render(request, 'home/report_creation.html', context = None)

database :

query_name = models.CharField(max_length=100,unique= True, default= True)

代码 2:

def save_report(request):
    if request.method == 'POST':
        print(request.POST.dict())

        querydata = ReportCreationData.objects.all()
        querydata_list = []
        querydata_dict = {'query_name':''}
        for data in querydata:
            querydata_dict['query_name'] = data.query_name
            print ('querydata_dict', querydata_dict)



        data_dict  = request.POST.dict()
        query_name = data_dict['query_name'],
        print ('query_name', query_name)

        query_json = {}
        #query json data
        query_json['data_src_name'] = data_dict['data_src_name']
        query_json['fields']        = data_dict['fields']
        query_json['group_by']      = data_dict['group_by']
        query_json['order_by']      = data_dict['order_by']
        query_json['where']         = data_dict['where']
        query_json['limit']         = data_dict['limit']
        query_json                  = json.dumps(query_json)


        report_creation_obj = ReportCreationData.objects.create(
                            query_json       = query_json, 
                            data_source_name = data_dict['data_src_name'], 
                            query_name       = data_dict['query_name'], 
                            mail_body        = data_dict['mail_body'])



        if (query_name == querydata_dict).exists():

            raise ('already exists')

        else:
            report_creation_obj.save()

        return HttpResponse('success')
    else:
       return render(request, 'home/report_creation.html')

with code 2 getting error:
AttributeError: 'bool' object has no attribute 'exists'

请帮忙

谢谢

【问题讨论】:

    标签: django python-3.x


    【解决方案1】:

    您可以在插入数据之前尝试,从数据库中运行选择查询,并使用当前值在 query_name 上应用 where 子句。因此,您可以获得重复记录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-08
      • 2022-11-07
      • 1970-01-01
      • 1970-01-01
      • 2018-08-18
      • 1970-01-01
      • 2019-11-27
      • 2022-08-18
      相关资源
      最近更新 更多