Привет! Я работаю над проектом 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
Это мои models.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>
Буду признателен за любую помощь