Как читать заголовки CSV - PullRequest
       1

Как читать заголовки CSV

0 голосов
/ 19 сентября 2019

So this is my uploading csv or excel file looks like.

Так вот как выглядит моя загрузка CSV или Excel файла.Поэтому мой вопрос: когда файл CSV выбирается с помощью «Загрузить файл», я хочу увидеть «заголовки» файла CSV и отобразить его перед кнопкой «Отправить», чтобы пользователи могли выбрать, какой «заголовок» они хотят.Только после этого «отправить» файл CSV для загрузки.

views.py

if request.POST and request.FILES:
   csvfile = request.FILES['csv_file']
       if csvfile.name.endswith('.csv'):
          dialect = csv.Sniffer().sniff(csvfile.readline())
          csvfile.open()
          readers = csv.reader(csvfile, delimiter=',',dialect=dialect)
          header=False
          addhosts=set()
          for reader in readers:
            if header is True:
              name=reader[0]
              desc=reader[1]
              value=somemode.objects.create(name=name, desc=desc)
            header=True
       else:
          messages.error(request, "Uploaded file is not .csv" )
return HttpResponseRedirect('/someviews/')

1 Ответ

0 голосов
/ 25 сентября 2019

Так что это ответ без использования JavaScript.

firstpopup.html

<div id="form">
    <form action="/someview1/{{id}}" method="POST" enctype="multipart/form-data">
         #file upload part
    </form>   
</div>

secondpopup.html

<div id="form1">
    <form action="/someview2/{{id}}" method="POST" enctype="multipart/form-data">
         #fields submit part
    </form>   
</div>

firstpopop.view

def someview1(request,id):
    args={}
    if request.POST and request.FILES:
        csvfile = request.FILES['csv_file']
        request.session['csv']=csvfile
        if csvfile.name.endswith('.csv'):
            dialect = csv.Sniffer().sniff(csvfile.readline())
            csvfile.open()
            readers= csv.DictReader(csvfile)
            args['fieldnames'] = readers.fieldnames
    return render(request, 'firstpopup.html',args)

secondpopup.views

def someview2(request,id):
    csvfile = request.session['csv']
    title=request.POST['title']
    Desc=request.POST['desc']
    csvfile.open()
    readers= csv.DictReader(csvfile)
    for reader in readers:
        ttl=reader[title]
        desc=reader[Desc]
        name=somemode.objects.create(Title=ttl,Description=desc)
    del request.session['csv']
    return HttpResponseRedirect('/someview3/'+id)

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