У меня есть модель:
class Company(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, null=True)
name = models.CharField(max_length=30, blank=True)
balance = models.DecimalField(max_digits=10, decimal_places=2, default=0)
phone_number = PhoneNumberField(null=True, blank=True)
active = models.BooleanField(default=False)
И мне нужно сериализовать создание пользователя и модели. Идея состоит в том, чтобы спросить название компании пользователя при регистрации, поэтому у меня есть:
class CreateUserSerializer(serializers.ModelSerializer):
company_name = serializers.CharField(required=True)
class Meta:
model = User
fields = ('id', 'company_name', 'username', 'email', 'password')
extra_kwargs = {'password': {'write_only': True}}
def create(self, validated_data):
username = validated_data['username']
email = validated_data['email']
password = validated_data['password']
company_name = validated_data['company_name']
user = User.objects.create(username=username, email=email, password=password)
Company.objects.create(user=user, name=company_name)
return user
И я получаю ошибку:
Получил AttributeError при попытке получить значение для поля
company_name
на сериализаторе CreateUserSerializer
. Сериализатор
поле может быть названо неправильно и не соответствовать ни одному атрибуту или ключу на
User
экземпляр. Исходный текст исключения был: объект «Пользователь» не имеет
атрибут 'company_name'.
В любом случае объекты «Компания» и «Пользователь» создаются так, как я могу видеть в своей панели администратора.
Что я делаю не так и как я могу это исправить?