嗨,我正在研究Django项目,并使用以下代码添加了将csv文件导入Django数据库的功能
class UploadFileForm(forms.Form):
file = forms.FileField()
def import_csv(request):
if request.method == "POST":
with open('C:/Users/admin/Desktop/Projekt/test2.csv') as file:
reader = csv.reader(file)
for column in reader:
p = CSV(gebäude=column[0], etage=column[1], raum=column[2], dose=column[3])
p.save()
return redirect('upload:index')
form = UploadFileForm()
return render(
request, "upload/csv_upload.html", {"form": form}
)
但是,如果我对csv文件进行更改并将其添加到数据库中,它只会添加所有内容,并且我在表中基本上拥有两次数据。我想知道是否有任何选项可以将表中的旧数据替换为已更改的数据,而不是仅将其添加到表中。我使用标准的sqlite3数据库。
这是csv文件
25.41, 1, 21, 10
25.42, 2, 22, 14
25.43, 1, 23, 13
25.44, 3, 24, 12
25.45, 2, 25, 11
25.46, 0, 15, 23
这是我的模特。py
class CSV(models.Model):
gebäude = models.CharField(max_length=100)
etage = models.CharField(max_length=100)
raum = models.CharField(max_length=100)
dose = models.CharField(max_length=100)
我的HTML表单
<h2>Upload CSV</h2>
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Upload</button>
任何帮助将不胜感激
答案 0 :(得分:2)
您只需执行CSV.objects.all().delete()
即可清空现有表。