Заменить старую таблицу на новую в базе данных Django? - PullRequest
0 голосов
/ 09 ноября 2018

Привет! Я работаю над проектом 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>

Буду признателен за любую помощь

1 Ответ

0 голосов
/ 09 ноября 2018

Вы можете просто сделать CSV.objects.all().delete(), чтобы очистить существующую таблицу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...