1
djangoインポートエクスポートのリソースメソッドをオーバーライドしています。しかし、親メソッドだけが実行されます。djangoインポートエクスポートのオーバーライドが機能しない
models.py
class Model(models.Model):
modelField1 = models.CharField(
modelField2...
modelField3...
admin.py
class ModelResource(resources.ModelResource):
def before_import(self, dataset, using_transactions, dry_run, **kwargs):
print("INside BEfore IMport")
dataset.headers = ('modelField1', 'modelField2', ...)
del dataset[0]
def get_instance(self, instance_loader, row):
print("Inside get instance")
return False
def get_or_init_instance(self, instance_loader, row):
print("INside Get or init")
instance = self.get_instance(instance_loader, row)
if instance:
return (instance, False)
else:
return (self.init_instance(row), True)
@admin.register(Model)
class ModelAdmin(ImportExportModelAdmin):
class Meta:
model = MOdel
resource_class = ModelResource
list_display = ('modelField1', 'modelField2', ...)
search_fields = ('modelField1', 'modelField2', ...)
私はまったくコンソールにprint文を取得しておりません。エラーは親メソッドから直接スローされます。彼らはまったく処刑されるべきではありません。私は正しい?
Excelドキュメントの列名は...「のCol1」、「Col2に」だった質問
Line number: 1 - u"Column 'id' not found in dataset. Available columns are: [u'Col1', u'Col2', u'Col2', ...]"
Traceback (most recent call last):
File "/home/aswin/projects/mastercityenv/local/lib/python2.7/site-packages/import_export/resources.py", line 434, in import_row
instance, new = self.get_or_init_instance(instance_loader, row)
File "/home/aswin/projects/mastercityenv/local/lib/python2.7/site-packages/import_export/resources.py", line 258, in get_or_init_instance
instance = self.get_instance(instance_loader, row)
File "/home/aswin/projects/mastercityenv/local/lib/python2.7/site-packages/import_export/resources.py", line 252, in get_instance
return instance_loader.get_instance(row)
File "/home/aswin/projects/mastercityenv/local/lib/python2.7/site-packages/import_export/instance_loaders.py", line 32, in get_instance
params[field.attribute] = field.clean(row)
File "/home/aswin/projects/mastercityenv/local/lib/python2.7/site-packages/import_export/fields.py", line 63, in clean
list(data.keys())))
KeyError: u"Column 'id' not found in dataset. Available columns are: [u'Col1', u'Col2', u'Col2', ...]"
:だから、あなたは上記のコードでエラーを注意している場合、彼らは私がオーバーロードされた親メソッドからのものでした。彼らはなぜ実行されますか?コンソールの印刷行を印刷するかどうか
あなたは申し訳ありません、あなたの 'ModelAdmin' – PRMoureu
@PRMoureuで代わりに' ResourceClass'の 'ModelResource'を呼んでいます。それはタイプミスでした –