【发布时间】:2020-04-19 18:43:33
【问题描述】:
我正在尝试使用 Django import-export 在我的应用程序中导入数据。 即使有文档,我也无法让它适用于我的“专有”模型,它正在扩展 Django 的用户模型。这是我的模型:
class Proprietaire(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
adresse = models.CharField(max_length=500)
telephone_regex = RegexValidator(
regex="[0-9]{10}", message="Veuillez entrer un numéro de téléphone valide."
)
telephone = models.CharField(validators=[telephone_regex], max_length=10)
date_inscription = models.DateField(auto_now_add=True)
用户导入似乎工作正常,但我不知道如何导入我的Proprietaires 并将它们链接到我的Users。阅读文档后,我在我的管理文件中尝试了这样的事情:
class ProprietaireResource(ModelResource):
class Meta:
model = Proprietaire
fields = ('user__username','telephone','adresse')
import_id_fields = ('user__username')
@admin.register(Proprietaire)
class ProprietaireAdmin(ImportExportModelAdmin):
resource_class = ProprietaireResource
admin.site.unregister(User)
@admin.register(User)
class UserAdmin(ImportExportModelAdmin):
pass
但无论我尝试什么(不使用import_id_fields 或不使用fields,或使用adrresse 作为import_id_fields),我都会不断收到如下错误:
Traceback (most recent call last):
File "C:\Users\perre\AppData\Local\Programs\Python\Python38\lib\site-packages\import_export\resources.py", line 500, in import_row
instance, new = self.get_or_init_instance(instance_loader, row)
File "C:\Users\perre\AppData\Local\Programs\Python\Python38\lib\site-packages\import_export\resources.py", line 277, in get_or_init_instance
instance = self.get_instance(instance_loader, row)
File "C:\Users\perre\AppData\Local\Programs\Python\Python38\lib\site-packages\import_export\resources.py", line 265, in get_instance
import_id_fields = [
File "C:\Users\perre\AppData\Local\Programs\Python\Python38\lib\site-packages\import_export\resources.py", line 266, in <listcomp>
self.fields[f] for f in self.get_import_id_fields()
KeyError: 'a'
我不明白这里发生了什么。
关于信息,我正在尝试使用同一个文件来导入User 和Proprietaire(我认为这应该不是问题);这是我尝试导入的一行示例:
标题:id,first_name,last_name,user__username,username,email,is_active,adresse,telephone Line : ,Clémentine,PerreautBis,clementine.perreautbis,clementine.perreautbis,example@test.fr,0,25 rue du Paradis 69003 Lyon,0203040506
【问题讨论】:
标签: django django-users django-import-export