Python CSV文件导入Django(仅导入1行数据)

Python CSV文件导入Django(仅导入1行数据),python,django,django-views,export-to-csv,Python,Django,Django Views,Export To Csv,我试图将CSV文件内容上传到数据库,但观察到只有第一行数据得到更新,而且如果存在具有相同值的数据,那么它将被忽略。 我们也可以使用逻辑打开,这样一旦任务完成,它就会自动关闭。 我的观点 import csv, io from django.shortcuts import render from django.contrib import messages # Create your views here. # one parameter named request def contact_up

我试图将CSV文件内容上传到数据库,但观察到只有第一行数据得到更新,而且如果存在具有相同值的数据,那么它将被忽略。 我们也可以使用逻辑打开,这样一旦任务完成,它就会自动关闭。 我的观点

import csv, io
from django.shortcuts import render
from django.contrib import messages
# Create your views here.
# one parameter named request
def contact_upload(request):
    # declaring template
    template = "testapp/upload.html"
    data = Movie.objects.all()
# prompt is a context variable that can have different values      depending on their context
    prompt = {
        'order': 'Order of the CSV should be releasedate, moviename, hero, heroine, rating',
        'profiles': data
              }

    # GET request returns the value of the data with the specified key.
    if request.method == "GET":
        return render(request, template, prompt)

    csv_file = request.FILES['file']
    # let's check if it is a csv file
    if not csv_file.name.endswith('.csv'):
        messages.error(request, 'THIS IS NOT A CSV FILE')
    data_set = csv_file.read().decode('UTF-8')
    print(data_set)
    io_string = io.StringIO(data_set)
    next(io_string)
        # setup a stream which is when we loop through each line we are able to handle a data in a stream

    for column in csv.reader(io_string, delimiter=',', quotechar="|"):
        _, created = Movie.objects.update_or_create(
            releasedate=column[0],
            moviename=column[1],
            hero=column[2],
            heroine=column[3],
            rating=column[4]
        )
        context = {}
        return render(request, template, context)
models.py 从django.db导入模型

在这里创建您的模型。 我很少会得到异常值:
“utf-8”编解码器无法解码位置15中的字节0xe4:无效的继续字节如何使用try块处理它

[30/Sep/2020 12:59:36] "GET /admin/jsi18n/ HTTP/1.1" 200 3223
releasedate,moviename,hero,heroine,rating
2020-09-30,bndcxnv,Abcd,fdghfkd,67
2020-09-76,Abcd,abc,abc,1
2020-09-10,Xyz,Pp,Ff,77
2020-09-30,Huff,Fgf,Fgt,779
[30/Sep/2020 12:59:47] "POST /uploadcsv HTTP/1.1" 200 470
[30/Sep/2020 12:59:50] "GET /admin/testapp/movie/ HTTP/1.1" 200 7245
[30/Sep/2020 12:59:50] "GET /admin/jsi18n/ HTTP/1.1" 200 3223
[30/Sep/2020 12:59:36] "GET /admin/jsi18n/ HTTP/1.1" 200 3223
releasedate,moviename,hero,heroine,rating
2020-09-30,bndcxnv,Abcd,fdghfkd,67
2020-09-76,Abcd,abc,abc,1
2020-09-10,Xyz,Pp,Ff,77
2020-09-30,Huff,Fgf,Fgt,779
[30/Sep/2020 12:59:47] "POST /uploadcsv HTTP/1.1" 200 470
[30/Sep/2020 12:59:50] "GET /admin/testapp/movie/ HTTP/1.1" 200 7245
[30/Sep/2020 12:59:50] "GET /admin/jsi18n/ HTTP/1.1" 200 3223