Python 读取csv文件并用它填充数据库';django应用程序中的s数据

Python 读取csv文件并用它填充数据库';django应用程序中的s数据,python,django,Python,Django,在Django应用程序中,我创建了一个表单,允许用户上传csv文件。 我想要的是当用户上传csv文件时,读取包含的数据并用它们填充数据库。 它工作正常,但不正确。数据保存为元组 这是我的密码 forms.py class SupplierCSVForm(forms.ModelForm): class Meta: model = SuplierCsv fields = '__all__' exclude = ('slug',) @logi

在Django应用程序中,我创建了一个表单,允许用户上传csv文件。 我想要的是当用户上传csv文件时,读取包含的数据并用它们填充数据库。 它工作正常,但不正确。数据保存为元组

这是我的密码

forms.py

class SupplierCSVForm(forms.ModelForm):
    class Meta:
        model = SuplierCsv
        fields = '__all__'
        exclude = ('slug',)
@login_required
def l_supplier(request):
    suppliers_list = Supplier.objects.all()
    paginator = Paginator(suppliers_list, 3, 2)

    page = request.GET.get('page')
    suppliers = paginator.get_page(page)

    # Supplier csv form
    if request.method == 'POST':
        form = SupplierCSVForm(request.POST, request.FILES)

        if form.is_valid():

            uploaded_file = request.FILES['csvfile']
            with open('f.csv', 'wb') as destination:
                for chunk in uploaded_file.chunks():
                    destination.write(chunk)
                    destination.close()
            #csvfile = io.TextIOWrapper(open('f.csv', 'rb'))

            with open('f.csv', 'r') as the_source:
                source_reader = csv.reader(sthe_source)
                next(source_reader)
                for Name, Email, Contact, City, Website, Activity, Cc, slug in source_reader:

                    new_supplier = Supplier()
                    new_supplier.name=Name,
                    new_supplier.email=Email,
                    new_supplier.contact=Contact,
                    new_supplier.city=City,
                    new_supplier.website=Website,
                    new_supplier.activity=Activity,
                    new_supplier.cc=Cc,
                    new_supplier.slug=slug,
                    new_supplier.save()

            return redirect('good:l_good')

    else:
        form = SupplierCSVForm()

    context = {
    'suppliers': suppliers,
    'form': form,
    }

    return render(request, 'supplier/l_supplier.html', context)
视图.py

class SupplierCSVForm(forms.ModelForm):
    class Meta:
        model = SuplierCsv
        fields = '__all__'
        exclude = ('slug',)
@login_required
def l_supplier(request):
    suppliers_list = Supplier.objects.all()
    paginator = Paginator(suppliers_list, 3, 2)

    page = request.GET.get('page')
    suppliers = paginator.get_page(page)

    # Supplier csv form
    if request.method == 'POST':
        form = SupplierCSVForm(request.POST, request.FILES)

        if form.is_valid():

            uploaded_file = request.FILES['csvfile']
            with open('f.csv', 'wb') as destination:
                for chunk in uploaded_file.chunks():
                    destination.write(chunk)
                    destination.close()
            #csvfile = io.TextIOWrapper(open('f.csv', 'rb'))

            with open('f.csv', 'r') as the_source:
                source_reader = csv.reader(sthe_source)
                next(source_reader)
                for Name, Email, Contact, City, Website, Activity, Cc, slug in source_reader:

                    new_supplier = Supplier()
                    new_supplier.name=Name,
                    new_supplier.email=Email,
                    new_supplier.contact=Contact,
                    new_supplier.city=City,
                    new_supplier.website=Website,
                    new_supplier.activity=Activity,
                    new_supplier.cc=Cc,
                    new_supplier.slug=slug,
                    new_supplier.save()

            return redirect('good:l_good')

    else:
        form = SupplierCSVForm()

    context = {
    'suppliers': suppliers,
    'form': form,
    }

    return render(request, 'supplier/l_supplier.html', context)

在行尾有不必要的逗号:

new_supplier.name=Name,
应该是

new_supplier.name=Name
Python认为您正在创建一个元组
i、 e.x,==(x,)

您在行尾有不必要的逗号:

new_supplier.name=Name,
应该是

new_supplier.name=Name
Python认为您正在创建一个元组
i、 e.x,==(x,)

删除分配新供应商对象的逗号。如果有任何尾随逗号,Python会将字符串对象转换为元组。

删除分配
新对象的逗号。如果有任何尾随逗号,Python会将字符串对象转换为元组