2017-09-26 9 views
1

私は結構問題があります。 xlsxデータをインポートするのにdjango-import-export を使用しました。 ImportExportModelAdminによってDjango管理者に統合されました。以下admin.pyです:Django import-export.admin customize:xlsxシート用、差分戦略を変更してください

@admin.register(assets) 
class data_import(ImportExportModelAdmin): 
    pass 

しかし、私は、データを複数回インポートするとき、私はそれだけで最新のデータを保存した(最後の)モデル化するために、私はすべてのデータ私は、インポートごとに時間を節約したい、とだけいくつかを使用しますデータが重複しているかどうかを判断する列。どのように私はこれを解決できますか?
model.py:

class station(models.Model): 
    station_name = models.CharField(max_length=100, verbose_name='Astation') 

class assets(model.Model): 
    name = models.CharField(max_length = 200, verbose_name = 'Aname') 
    sn = models.CharField(max_length=200, verbose_name='Asn', default=None) 
    ip_address = models.GenericIPAddressField(u'IP', blank=True, null=True) 
    station = models.ForeignKey(station) 

答えて

0

あなたはリソースクラスを作成し、get_instanceメソッドをオーバーライドして、偽常に

from import_export import resources, fields 
from import_export.widgets import ForeignKeyWidget 

class DataResource(resources.ModelResource): 
    # UPDATE 
    # If model has ForeignKey 
    station = fields.Field(widget=ForeignKeyWidget(station, 'id')) 

    def get_instance(self, instance_loader, row): 
     # Returning False prevents us from looking in the 
     # database for rows that already exist 
     return False 

    class Meta: 
     model = assets # class name should be camelcase 
     fields = '__all__' # If all column of table present in xlsx otherwise mention fields name. 

@admin.register(assets) 
class data_import(ImportExportModelAdmin): 
    resource_class = DataResource 
+0

感謝を返しますが、うまくいきませんでしたことができます。最初のファイルは10個のデータをインポートした後、5個の新しいデータを持つ2番目のファイルをインポートしますが、最後にデータベースの新しい5個のデータだけを – JLOGAN

+1

で更新します。 – Satendra

+0

OK、フィールドは一意ではありません – JLOGAN

関連する問題