Задать вопрос
@stilet69
программист

Как получить сериализованное значение владельца модели Django REST framework при создании?

Подскажите пожалуйста , как используя Django REST framework получить владельца модели? Есть модель User:
class User(AbstractBaseUser, PermissionsMixin):
есть модель Seeker связанная с User:
class Seeker(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL)

и есть модель связанная с Seeker:
class Education(CreatedModified):
    seeker = models.ForeignKey(Seeker)

при создания сериализатора класса EducationSerializerCreate мне нужно получать поле seeker связанное с текущим пользователем сеанса и подставлять его по умолчанию в сериализуемую модель
сейчас код такой:
class EducationSerializerCreate(serializers.ModelSerializer):
    user = serializers.HiddenField(default=serializers.CurrentUserDefault())
    seeker = Seeker.objects.filter(user=user)

    class Meta:
        model = Education
        fields = '__all__'

соответственно питон ругается:
TypeError: int() argument must be a string, a bytes-like object or a number, not 'HiddenField'
подскажите как правильно сделать?
  • Вопрос задан
  • 244 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Konstantin18ko
@Konstantin18ko
Стоматолог
Сериализуем сначала User, а потом сериализованного User вкладываем в сериализацию Education
class UserSerializer(serializers.ModelSerializer):

    class Meta:
        model = User
        fields = '__all__'

class EducationSerializerCreate(serializers.ModelSerializer):
    user = UserSerializer()
    seeker = Seeker.objects.filter(user=user)

    class Meta:
        model = Education
        fields = '__all__'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы