2017-10-02 9 views
1

ソフトウェア:
Python3.6.2
Django1.11
ジャンゴ・輸出入== 0.5.1
OSX10.12.6
はIDなしでインポートできません

INSTALLED_APPS:

THIRD_PARTY_APPS = [ 
    ..., 
    'reversion',  # django-reversion 
    'import_export', # django-import-export 
] 

要件:
1.モデルreversion
2モデルがimport
3を行うことができることができますインポートされた各役割はcreated_userとしてアップローダーを持っており、そしてupdated_user は(しかし、ちょうど今の私はそれがExcelファイルから読み込まれ、ここにしましょう
1要件の2以来厳格なmetaクラスにハードヒットします:それは問題)

試みです​​。それから私はreichertは解決策適用https://github.com/etianen/django-reversion/issues/323
2. enter image description here enter image description here

問題:

Line number: 1 - get() keywords must be strings 
None, 696 02, Lane, Ronald Regan, Ratíškovice, n/a, Dolichitus patagonum, admin, admin 
Traceback (most recent call last): 
File "/Users/el/.pyenv/versions/soken/lib/python3.6/site-packages/import_export/resources.py", line 434, in import_row 
instance, new = self.get_or_init_instance(instance_loader, row) 
File "/Users/el/.pyenv/versions/soken/lib/python3.6/site-packages/import_export/resources.py", line 258, in get_or_init_instance 
instance = self.get_instance(instance_loader, row) 
File "/Users/el/.pyenv/versions/soken/lib/python3.6/site-packages/import_export/resources.py", line 252, in get_instance 
return instance_loader.get_instance(row) 
File "/Users/el/.pyenv/versions/soken/lib/python3.6/site-packages/import_export/instance_loaders.py", line 33, in get_instance 
return self.get_queryset().get(**params) 
TypeError: get() keywords must be strings 

質問:
私は次に何をすべきか?

モデル:
https://gist.github.com/elcolie/98e641d57c5de3394f816a5d9b80ef13

admin.py
https://gist.github.com/elcolie/081017adc7b5e2fd7a3a38b0573597c6

参照:
Dealing with import of foreignKeys in django-import-export
django-import-export to export User model
Django Import/Export to multiple Models (foreignkey)

答えて

1

ソリューションは、私は、ファイルにidフィールドを公開する必要がある:(

ZIPCODE_BASIC_FIELDS = [ 
    'id', # Add 
    'zipcode', 
    'region', 
    'prefecture', 
    'city', 
    'town', 
    'building', 
] 

class ZIPCodeAddressResource(resources.ModelResource): 
    zipcode = fields.Field(widget=widgets.CharWidget()) 
    created_user = fields.Field(column_name='created_user', attribute='created_user', widget=widgets.ForeignKeyWidget(User, 'username')) 
    updated_user = fields.Field(column_name='updated_user', attribute='updated_user', widget=widgets.ForeignKeyWidget(User, 'username')) 

    class Meta: 
     model = ZIPCodeAddressImportExport 
     # exclude = ['id', ] # Need to remove this line 
     fields = IMPORT_COLUMNS 
     skip_unchanged = True 
     report_skipped = True 
     import_id_fields = ['id', ] # Let it had 'id' 
     export_order = IMPORT_COLUMNS 
関連する問題