Как загрузить CSV-файл через форму Django и сохранить его в базе данных Django (модель Django) - PullRequest
0 голосов
/ 26 сентября 2019

Не могли бы вы помочь мне?Я застрял на несколько недель, и, несмотря на мои исследования в сети, я не могу найти решение, которое отвечает моим интересам.

Я хочу из формы (форма Django) импортировать файл Excel или CSV в мою базу данных (Джанго модель) и сохраните его.

view.py

def importation(request):
    if request.method=='POST':
        form = TabInfoForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return render(request, 'importation.html', {'form':form})

    else:
        form=TabSourceForm()
        return render(request, 'importation.html', {'form':form})

model.py

class TabSource(models.Model):
     date=models.DateField()
     dsp=models.CharField(max_length=30)
     advertiser=models.CharField(max_length=100)
     insertion_order=models.CharField(max_length=300)
     insertion_order_id=models.IntegerField()
     strategy_name=models.CharField(max_length=300)
     creative_name=models.CharField(max_length=400)
     spent_budget=models.DecimalField()
     impressions=models.IntegerField()
     clics=models.IntegerField()
     conversions=models.IntegerField()
     post_clics_conversions=models.IntegerField()
     post_view_conversions=models.IntegerField()
     my_file = models.FileField()

     def __unicode__(self):
         return "{} {}".format(self.dsp, self.insertion_order)

forms.py 
class TabSourceForm(forms.ModelForm):
    class Meta:
        model=TabSource
        fields=[
            'my_file',
            ]

import.html

{% load static %}
    {% block content %}
    <form class="" action="" method="post" enctype="multipart/form-data">{% csrf_token %}
      <fieldset><legend>Télécharger le Fichier Datorama</legend>
      {{ form}} <br><br>
      <button type="submit" name="button">Upload</button>
    </fieldset>
    </form>
    {% endblock %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...