Django批量创建非重复条目

问题描述 投票:0回答:1

我想将Excel文件中的数据插入数据库,但我想只插入非重复的数据。

我写了这段代码,但if语句总是False

def ca_import(request):
    uploadform=UploadFileForm(None)
    if request.method == 'POST' :
        uploadform = UploadFileForm(request.POST, request.FILES)
        if uploadform.is_valid():
            file = uploadform.cleaned_data['docfile']
            workbook = openpyxl.load_workbook(filename=file, read_only=True)
            # Get name of the first sheet and then open sheet by name
            first_sheet = workbook.get_sheet_names()[0]
            worksheet = workbook.get_sheet_by_name(first_sheet)
            data = []
            try:

               for row in worksheet.iter_rows(row_offset=1): # Offset for header
                  stockname =StocksName()

                  if (StocksName.objects.filter(name=row[0].value).count()<1):  #???
                     stockname.name=row[0].value
                     data.append(stockname)
                     StocksName.objects.bulk_create(data)

               messages.success(request,"Successful" ,extra_tags="saveexcel")
               except :
               messages.error(request,_('Error'),extra_tags="excelerror")

    return render(request, 'BallbearingSite/excelfile.html',{'uploadform':uploadform})

有什么建议可以解决吗?

django excel
1个回答
0
投票

如果您的数据具有唯一ID,那么您可以使用get_or_create()update_or_create()而不是bulk_create()

否则,您必须编写逻辑以检查模型中是否已存在每条线。

© www.soinside.com 2019 - 2024. All rights reserved.