Django Обновление экземпляра с помощью электронной почты из 2 связанных объектов
У меня есть эти models:
class Contact(models.Model):
email = models.EmailField(max_length=200, blank=False, null=False)
class Account(models.Model):
#account owner
contact = models.OneToOneField(Contact, on_delete=models.CASCADE)
class IndividualProfile(models.Model):
account = models.OneToOneField(Account, blank=False, null=False, default='', on_delete=models.CASCADE)
и я хочу импортировать IndividualProfile, через django-import-export. В листе, который я импортирую, у меня есть поле email, которое я буду использовать, чтобы проверить, существует ли Contact. Вот логика, над которой я сейчас работаю:
class IndividualProfileResource(resources.ModelResource):
class Meta:
model = IndividualProfile
clean_model_instances = True
def before_import_row(self, row, row_number=None, **kwargs):
self.temp_email = row["email"]
def after_import_instance(self, instance, new, row_number=None, **kwargs):
"""
Create any missing Contact entries prior to importing rows.
Create any missing Account entries prior to importing rows.
"""
if self.temp_email:
# create contact first
contact, created = Contact.objects.seal().get_or_create(email=self.temp_email)
# # check if account exists
account, created = Account.objects.seal().get_or_create(contact=contact)
# # check if profile exists
instance.account = account
но это приводит к ошибке в предварительном просмотре, когда я пытаюсь загрузить существующий email. Я ожидал, что он обновит существующий экземпляр IndividualProfile, но этого не произошло. Как я могу это исправить? Любая помощь будет принята с благодарностью.
