我试图通过重新上传具有更改后值的CSV文件来更新数据库中的一个或多个字段。
我尝试过:
views.py
if
我遍历了这些值,并将值'gebaeudebereich'设置为CSV文件中的gebaeudebereich值(我也将对其他字段执行此操作,但这是我尝试过的想法)。它没有节省任何东西,也没有给我一个错误,只是什么也没做。 try子句可以正常工作。
我的模型。py
else
通过文件上传来更新数据库并不难。希望您能对我有所帮助,因为我试图解决这个问题的时间太长了。
答案 0 :(得分:0)
我解决了这个问题。
def file_upload(request):
if request.method == "POST":
form = UploadFileForm(request.POST, request.FILES)
count = 0
if form.is_valid():
csv_file = request.FILES['file']
with open(str(csv_file)) as file:
reader = csv.reader(file)
for row in reader:
count += 1
try:
_, p = Excel1.objects.update_or_create(id = count, defaults =
{'gebaeudebereich' : row[0], 'gebaeudenummer' : row[1],
'ebene' : row[2], 'raum' : row[3], 'dose' : row[4],
'switch_ip' : row[5], 'switch_port' : row[6], 'datum' : row[7], 'akteur' : row[8]})
except IntegrityError:
return render(request, 'testapp/duplicate_error.html', {'row'
: row})
return redirect('testapp:index')
form = UploadFileForm()
return render(
request, "testapp/file_upload.html", {"form": form}
)