我在您的帮助下修复了很多问题,我想我们会遇到最后的问题;如果csv文件中的行不是在model模型数据库中,而不是django,那么所有这些都混合在一起;csv行和django数据库不再按照正确的顺序运行,所以所有的操作都是混合的。为了防止这个问题,我在循环中添加了queryset计数函数,以引发错误消息,或者尝试推送另一个默认值,但没有工作。您有什么建议来防止这个同步问题?
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)发布于 2018-04-12 17:00:10
您不能使用和if filter循环。
除了捕获空实例外,您还需要使用get函数和try。
try:
instance = FP.objects.get(FP_Item=query)
instances.append(instance)
except FP.DoesNotExist:
instance = ["Check"]
instances.append(instance)
pair = zip(lines, instances)https://stackoverflow.com/questions/49796798
复制相似问题