【问题标题】:Import CSV to Django Model将 CSV 导入 Django 模型
【发布时间】:2013-07-27 07:10:45
【问题描述】:

我使用 django-import-export 从我的 django 模型备份了 CSV 文件,我想将它恢复到我的模型中,我该怎么做? 当我想为每个对象创建对象时,我遇到了外键问题。

id,name,address,job,KBSE
1,Hamid,3,Doctor,4311
2,Ali,7,Artist,5343
3,Reza,2,Singer,5232

【问题讨论】:

    标签: django django-models django-import-export


    【解决方案1】:

    Import data workflow。大多数函数都可以在资源子类中被覆盖。如果这没有帮助,请打开问题。

    【讨论】:

      【解决方案2】:

      您可以使用 pandas 的自定义 python 脚本将 csv 数据加载到 Django 模型中。

      #First define your Django Enviromental variables
      
      import os
      os.environ.setdefault("DJANGO_SETTINGS_MODULE", "DjangoProjectName.settings")
      import django
      django.setup()
      import pandas as pd
      import numpy as np
      
         
      #Import Required Django model
      
      from djangoApp.models import * #models
      
      # Import CSV file
      df = pd.read_csv('csv_url.csv')
      
      # Do required pre-processing on panda dataframe 
      # such as data cleaning, data format settings etc..
      
      # Iterater throught panda dataframe and save data in Django model
      
      for index, row in df.iterrows():
      
            # create django model
      
            samplemodelObject = SampleModel()
      
            # Normal Fields ( Non-foreign key fields) adding
           
            samplemodelObject.field_name01 = row['Field_01']
      
            
            # Adding Foreign Key Field
      
             samplemodelObject.field_foreignkey = ForeignKeyModel.objects.get( fk_key = row['fk_value_field']
      
            # save data model instance
            samplemodelObject.save()
            samplemodelObject.clear()
            
      

      【讨论】:

        【解决方案3】:

        您应该以正确的顺序导入表,确保首先导入您依赖的所有数据。

        所以加载外部表而不是加载当前表。如果您没有外来数据并且其中一些已被删除,则必须将其重新创建。

        祝你好运!

        【讨论】:

        • django-import-export 上是否有任何选项可以将 CSV 文件导入模型,并且库根据模型信息处理外键关系?
        猜你喜欢
        • 2014-04-14
        • 2021-02-10
        • 2019-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-21
        • 2017-02-19
        • 2014-08-30
        相关资源
        最近更新 更多