私はCsvを既に存在するモデルにインポートするアプリケーションを作成する必要があるDjangoプロジェクトで作業します(私はこのモデルを変更できません)。 exempleについてはCsvDataException:無効なフィールド数
、私は3つのフィールドが含まれていSates( "ペイ")モデルを持っている:名前、コード、および国籍:
class Pays(models.Model):
pays = models.CharField(max_length=150)
codeiso3166alpha2 = models.CharField(max_length=2)
nationalite = models.CharField(max_length=50, null=True, blank=True)
maj = models.DateTimeField(auto_now=True)
class Meta:
db_table = u'Pays'
def __unicode__(self):
return self.pays
ここでは私のcsvファイルの小便です:
AFGHANISTAN;AF;Afgane
AFRIQUE DU SUD;ZA;Sud-africaine
ALBANIE;AL;Albanaise
そのために、私はモジュール "django-adaptator"を使いました。ここで働く私の最初のコードは、あるデータをインポートaswellされています
"remplirPays" という名前の私のアプリケーションのmodels.py:ここ
# coding: utf-8
from django.db import models
from adaptor.model import CsvModel
from adaptor.fields import CharField, IntegerField, FloatField
from polyc2n.models import Pays #that is the model that already exists
class MyCSVModel(CsvModel):
name = CharField (match = "pays")
abrev = CharField (match ="codeiso3166alpha2")
nationalite = CharField (match ="nationalite")
class Meta:
delimiter = ";"
has_header = True
dbModel = Pays
は私のviews.pyです:
# coding: utf-8
from django.shortcuts import render
from django.http import HttpResponse
from adaptor.model import CsvModel
from remplirPays.models import MyCSVModel
path = "pays.csv"
def DataPays(request):
MyCSVModel.import_data(data = open(path))
return HttpResponse("Import is ok")
しかし、私のコードを最適化し、somoneが簡単に使えるようにするために、私はCsvModelではなくCsvModelを使用したいと思います.Djangoモデルは既に存在していますが、CSVモデルを再宣言したくありません。ここで
が問題であり、私のコードは、次のいずれかです。models.py:
# coding: utf-8
from django.db import models
from polyc2n.models import Pays
from adaptor.model import CsvDbModel
class MyCSVDbModel(CsvDbModel):
class Meta:
dbModel = Pays
delimiter = ";"
has_header = True
私のviews.py:
# coding: utf-8
from django.shortcuts import render
from django.db import models
from polyc2n.models import Pays
from adaptor.model import CsvDbModel
from remplirPays.models import MyCSVDbModel
from django.http import HttpResponse
path = "pays.csv"
def DataPays(request):
MyCSVDbModel.import_data(data = open(path))
return HttpResponse("import is ok")
と私が実行したときに、私が得ましたエラー:
I私の最初のコードがうまくいったときになぜこれが得られるのかわかりません....
私はあなたが私の助けを借りて読んでくれることを願っています。
シモンズ:私は私の英語のために謝罪、私はネイティブスピーカーではないと私は私の最高の
CvsDbModelを使用してのpuroposeはあなたがCsvModelではなくを使用する必要がありますので、1を再宣言する場合は、CSVモデルを再宣言する必要はありませんということですCsvDbModel – Lydia