我使用 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-import-export 从我的 django 模型备份了 CSV 文件,我想将其恢复到我的模型中,我该怎么做?当我想为每个对象创建对象时,我遇到了外键问题。
id,name,address,job,KBSE
1,Hamid,3,Doctor,4311
2,Ali,7,Artist,5343
3,Reza,2,Singer,5232
请参阅导入数据工作流。大多数函数都可以在资源子类中被覆盖。如果这没有帮助,请打开问题。
您可以使用使用 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()
您应该以正确的顺序导入表,确保首先导入您依赖的所有数据。
所以加载外部表而不是加载当前表。如果您没有外来数据并且其中一些已被删除,则必须将其创建回来。
祝你好运!