Сигналы Django не сохраняют модели с пользовательскими параметрами - PullRequest
0 голосов
/ 24 июня 2019

У меня есть пользовательская модель пользователя CustomUser и связанные модели Сотрудник с полем Foreignkey для пользователя.

class Employee(models.Model):
    """Employee information."""
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, unique=True)
    first_name = models.CharField("first name", max_length=32, blank=True)
    last_name = models.CharField("last name", max_length=32, blank=True)

Я пытаюсь создать экземпляр Employee после регистрации пользователя, используя post_save сигналы с полями first_name и last_name , импортированные из полей моей модели пользователя .

@receiver(post_save, sender=CustomUser)
def create_or_update_user_profile(sender, instance, created, **kwargs):
    if created:
        if instance.first_name and instance.last_name:
            employee = Employee.objects.create(user=instance, first_name=instance.cleaned_data['first_name'], last_name=instance.clened_data['last_name'] )
        else:
            employee = Employee.objects.create(user=instance)

Но всегда создавалась модель с пустым полем. В чем причина этого и что нужно изменить?

p.s. Мне почему-то нужны одинаковые поля в обеих моделях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...