Как получить автоматически заполняемые значения (значения по умолчанию) в методе создания сериализатора в django?

У меня есть такая модель:

class Post(BaseModel):
        post_user_id = models.CharField(max_length=500, unique=True, default=create_uid)

create_uid генерирует уникальный идентификатор

serializer:

class PostSerializer(serializers.ModelSerializer):
    class Meta:
        model = Post
        fields = '__all__'

    def create(self, validated_data):
        print(validated_data['post_user_id'])
        return super().create(validated_data)

Для каждого созданного поста будет автоматически генерироваться post_user_id, и пользователь не будет публиковать post_user_id На print(validated_data['post_user_id']) я хочу вывести сгенерированный номер. Но я получаю ошибку

KeyError

Значения по умолчанию присваиваются при создании экземпляра. Вы пытаетесь вывести значение до этого. Если вы хотите получить id в функции craete, вы можете вывести его после вызова super.create(). Не забудьте вернуть объект позже.

def create(self, validated_data):
    obj=  super().create(validated_data)
    print(obj.post_user_id)
    return obj 
Вернуться на верх