как импортировать данные в базу данных с помощью Django - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь импортировать данные из таблицы Excel в базу данных, используя Django, но она не работает.

Файл Excel состоит из заголовков из 2 столбцов.

id -
name

Строка ошибокномер: 1 - 'id' Нет, проверить трассировку (последний вызов был последним): файл "C: \ Users \ LTGM ~ 1 \ Desktop \ TESTFO ~ 1 \ testanal \ lib \ site-packages \ import_export \ resources.py",строка 492, в экземпляре import_row, new = self.get_or_init_instance (instance_loader, строка) Файл "C: \ Users \ LTGM ~ 1 \ Desktop \ TESTFO ~ 1 \ testanal \ lib \ site-packages \ import_export \ resources.py", строка269, в get_or_init_instance instance = self.get_instance (instance_loader, row) Файл "C: \ Users \ LTGM ~ 1 \ Desktop \ TESTFO ~ 1 \ testanal \ lib \ site-packages \ import_export \ resources.py", строка 263, вget_instance return instance_loader.get_instance (строка) Файл "C: \ Users \ LTGM ~ 1 \ Desktop \ TESTFO ~ 1 \ testanal \ lib \ site-packages \ import_export \ instance_loaders.py", строка 31, в поле get_instance = self.resource.fields [key] KeyError: 'id'

Я попробовал модуль import_export.

  1. создать класс в models.py
  2. создать ресурс в resources.py
  3. создать администратора в admin.py
  4. создатьфункция в views.py

models.py

from django.db import models

# Create your models here.
class criminal_type(models.Model):
    criminal_typeID = models.AutoField(primary_key=True)
    name = models.CharField(max_length=10)

    def __str__(self):
        return str(self.name)

resources.py

from import_export import resources
from .models import criminal_type
# from .models import Mouhafazat


class criminal_type_resource(resources.ModelResource):
    class Meta:
        model = criminal_type

admin.py

from import_export.admin import ImportExportModelAdmin
from django.contrib import admin
from .models import criminal_type

@admin.register(criminal_type)
class CriminalTypeAdmin(ImportExportModelAdmin):
    pass

views.py

from django.shortcuts import render
from tablib import Dataset


# Create your views here.

def simple_uploadCriminalType(request):
    if request.method == 'POST':
        criminalType = criminal_type_resource()
        dataset = Dataset()
        newCriminalType = request.FILES['myfile']

        imported_data = dataset.load(newCriminalType.read(),format="xlsx")
        result = criminalType.import_data(dataset, dry_run=True)  # Test the data import

        if not result.has_errors():
            criminalType.import_data(dataset, dry_run=False)  # Actually import now

    return render(request, 'core/simple_upload.html')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...