Задать вопрос
@stayHARD

Создание объекта через Serializer, ManyToMany field?

Доброй ночи.

Как при посте через сериалайзер (DRF) отправить значения в ManyToMany поле?

Модель:
class User(AbstractEmailUser):
    target_languages = models.ManyToManyField(Language, default='en', related_name="target_language")
    biography = models.TextField(null=True, blank=True)
    location = models.CharField(max_length=2, null=True)
    objects = UserManager()

Сериалайзер:
class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        exclude = ['password', 'groups', 'user_permissions', 'is_superuser',
                   'is_staff']
        read_only_fields = ['date_joined', 'last_login']
  • Вопрос задан
  • 824 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@stayHARD Автор вопроса
Написал вот такой кусочек кода, но в дебагере rest framework отказывается даже заходить в функцию.
def create(self, validated_data):
        target_languages = validated_data.pop('target_languages')
        user = User.objects.create(**validated_data)
        for target_language in target_languages:
            user.target_languages.add(get_object_or_404(Language, iso_639_1=target_language))
        user.save()
        return user
Ответ написан
Ваш ответ на вопрос

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

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