Size: a a a

2016 November 13

i

ikasymov in pro.python
вот серилизатор
class ProducerUpdateSerializer(TaggitSerializer, serializers.ModelSerializer):
   tags = TagListSerializerField()
   categories = serializers.StringRelatedField(many=True)

   class Meta:
       model = Producer
       fields = ('id', 'business_type', 'logo', 'name', 'slug', 'country', 'city',
                 'street_address', 'zip', 'short_info', 'info', 'website', 'categories', 'tags')
источник

i

ikasymov in pro.python
при запросе PUT ошибка выходит:
   Cannot call .is_valid() as no data= keyword argument was passed when instantiating the serializer instance.
источник

i

ikasymov in pro.python
подскажете в чем проблема?
источник

PS

Pavel Shvedov in pro.python
хм
источник

PS

Pavel Shvedov in pro.python
у Вас какая-то древняя версия django-rest-framework, похоже
по предполагаю что неприавльно с get_serializer работаете
источник

PS

Pavel Shvedov in pro.python
там в одном случае возвращается тупо класс serializer'a, в случае с 'PUT" or 'PATH'
источник

PS

Pavel Shvedov in pro.python
а в других -- уже его инстанс
источник

PS

Pavel Shvedov in pro.python
сравните
источник

PS

Pavel Shvedov in pro.python
return ProducerSerializer(queryset, fields=('short_info',))
и
return ProducerUpdateSerializer
источник

i

ikasymov in pro.python
и как же быть?
источник

i

ikasymov in pro.python
не знаю что передать ProducerUpdateSerializer  что бы  сработал, пробовал передать обьект и т.д не получается та же ошибка
источник

PS

Pavel Shvedov in pro.python
я подозреваю что get_serialiser должен вернуть просто класс сериалайзера
источник

PS

Pavel Shvedov in pro.python
не надо туда ничего там передавать
источник

PS

Pavel Shvedov in pro.python
если хотите какую-то логику дальше накрутить, это делается в update или perform_update
источник

PS

Pavel Shvedov in pro.python
не помню уже
источник

i

ikasymov in pro.python
мне же надо вытаскивать только определенные поля с запрашиваемого обьекта, такое я смог сделать только в get_serializer, и внутри мне надо еще и обновление сделать, и это у меня не получается, по другому никак надо сделать все это именно в get_serializer
источник

PS

Pavel Shvedov in pro.python
ну там у тебя 3 if
источник

PS

Pavel Shvedov in pro.python
каждый из них должен возвращать просто serializer
источник

PS

Pavel Shvedov in pro.python
если нужны специальные поля -- делай отдельные serializer'ы :)
источник

i

ikasymov in pro.python
а как же DynamicFieldsModelSerializer? Зачем он нужен тогда?
источник