Hitesh Roy
Hitesh Roy

Reputation: 337

i want to show duplicate value error on front end

i have an query_name field in database. i want that every value should be unique so i changed it constraint and add unique= true. now i want that if user enter the duplicate value then error duplicate value show to the user. currently error is showing only in backend

here is my code in 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)

code 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'

Please help

Thanks

Upvotes: 0

Views: 214

Answers (1)

Ms.KV
Ms.KV

Reputation: 261

You can try before inserting the data,run a select query from database and apply where clause on your query_name with your current value.So by this you can get duplicate records.

Upvotes: 1

Related Questions