django模型和csv文件zip功能缺乏

时间:2018-04-12 12:38:22

标签: django csv zip

我在你的帮助下解决了很多问题,我想我们会遇到问题; 如果来自csv文件的行不在我的django模型数据库中而不是django混合了所有那些; csv line和django数据库不再按正确顺序排列,因此全部混合。 为了防止出现这个问题,我在循环中添加了if queryset count函数来引发错误消息,或尝试同时推送另一个默认值但没有任何效果。你建议什么来防止这种同步问题?

                   for instance in RFP.objects.filter(FP_Item=query):
                        if RFP.objects.filter(FP_Item=query).count() >= 1:
                            instances.append(instance)
                        else:
                            messages.success(request, "ERROR")

参考整个代码:

 with open(path, encoding='utf-8') as f:
            data = csv.reader(f, delimiter='|')
            for row in data:
                line = row[0]
                lines.append(line)
                query = line
                for instance in FP.objects.filter(FP_Item=query):
                    if FP.objects.filter(FP_Item=query).count() <= 1:
                        instances.append(instance)
                    else:
                        messages.success(request, "ERROR")
            pair = zip(lines, instances)
            context = {'pair': pair,
                       }
            return render(request, 'check_fp.html', context)

1 个答案:

答案 0 :(得分:1)

您不能使用过滤器查询集和if else循环 你需要使用try函数和try来捕获空实例。

                try:
                    instance = FP.objects.get(FP_Item=query)
                    instances.append(instance)
                except FP.DoesNotExist:
                    instance = ["Check"]
                    instances.append(instance)
            pair = zip(lines, instances)