Я пытаюсь использовать Django import-export для импорта данных в мое приложение. Даже с документацией я не могу заставить ее работать для моей модели "Proprietaire", которая расширяет пользовательскую модель 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)
Кажется, что пользовательский импорт работает нормально, но тогда я не знаю, как импортировать мои Proprietaire
s и связать их с моими User
s. Прочитав документацию, я попробовал что-то вроде этого в моем админ-файле:
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, имя пользователя, электронная почта, is_active, адрес, телефонная линия:, Clémentine, PerreautBis, clementine.perreautbis, clementine . perreautbis,example@test.fr, 0,25 rue du Paradis 69003 Lyon, 0203040506