我在你的帮助下解决了很多问题,我想我们会遇到问题; 如果来自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)
答案 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)