Legalas61
@Legalas61
Студент

Как передеать QuerySet с фронта?

С фронта передаю ID категорий для юзера. {"specialty":[10,11]}

DRF видимо нужно QuerySet, ругается так
non_field_errors [ "Invalid data. Expected a dictionary, but got int." ]


Такое в сериализаторе
class CategorySerializer(serializers.ModelSerializer):
    class Meta:
        model = Account
        fields = '__all__'

class CreateAccountSerializer(serializers.ModelSerializer):
    specialty = CategorySerializer(many=True)

    class Meta:
        model = Account
        fields = '__all__'


Модель:
class Account (models.Model):
specialty = models.ManyToManyField(Catalog, default='')


Если создаю подобие QuerySet
"specialty":[{"name":"Митинг","id":10}]
Получаю такую ошибку
Field 'id' expected a number but got {'name': 'Митинг', 'id': 10}.

Показывает на эту строчку
account.specialty.set(self.request.data.get('specialty'))


Переделал на это
for i in self.request.data.get('specialty'):
                account.specialty.set(i.get('id')) // 'int' object is not iterable

Получаю ошибку
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 1
@dooMoob
DRF напрямую говорит, что ему нужно, и что он получил вместо этого
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы