Сценарий: пользователь загружает файл CSV и в бэкэнде сохраняет CSV как файл.Сейчас я пытаюсь сохранить эти CSV-файл в базе данных в виде таблицы.Когда csv сохранит базу данных, она будет отображать данные как pandas dataframe.
Я уже вижу некоторые пакеты, такие как django-import-export.Но это не то, что я хочу.Главное, чтобы в этих пакетах создавалась модель перед загрузкой файла.Но я не создаю модель перед тем, как пользователь загружает файл.
вот мой код django.
model.py
from django.db import models
# Create your models here.
from django.db import models
# Create your models here.
class DataUpload(models.Model):
fileId = models.AutoField(primary_key=True)
data_upload = models.FileField(upload_to='files/')
class Meta:
db_table = 'DataUpload'
forms.py
from django import forms
from .models import DataUpload
class PostForm(forms.ModelForm):
class Meta:
model = DataUpload
fields = ['data_upload']
urls.py
from django.urls import path
from .views import dataview , FileView, ResultView
# from .views import BonolothaDataView
urlpatterns = [
path('', dataview.as_view()),
path('fileview/', FileView.as_view(), name='fileview'),
path('result/', ResultView.viewResult, name='result'),
# path('bonolotha/', BonolothaDataView.as_view(), name='bonolotha'),
]
views.py
class dataview(View):
model = DataUpload
form_class = PostForm
initial = {'key': 'value'}
template_name = 'post.html'
fileview_url = reverse_lazy('fileview')
def get(self, request, *args, **kwargs):
form = self.form_class(initial=self.initial) # pribt html form
return render(request, self.template_name, {'form':form})
def post(self, request, *args, **kwargs):
form = self.form_class(request.POST, request.FILES)
context = {
'form': form,
}
if form.is_valid():
form.save()
return redirect(self.fileview_url)
else:
form = self.form_class()
return render(request, self.template_name, context)