Size: a a a

2016 November 13

i

ikasymov in pro.python
там говриться про это:
источник

i

ikasymov in pro.python
get_serializer(self, instance=None, data=None, many=False, partial=False) - Returns a serializer instance.
источник

i

ikasymov in pro.python
по этому я и использую его
источник

PS

Pavel Shvedov in pro.python
а блин.
я кажется понял
источник

PS

Pavel Shvedov in pro.python
return ProducerUpdateSerializer(queryset, data=request.data)
источник

PS

Pavel Shvedov in pro.python
как-то так может сработает? :)
источник

i

ikasymov in pro.python
я уже пробовал :)
источник

PS

Pavel Shvedov in pro.python
фигово
источник

PS

Pavel Shvedov in pro.python
а что он пишет на этом?
источник

i

ikasymov in pro.python
тоже самая ошибка
источник

i

ikasymov in pro.python
Cannot call .is_valid() as no data= keyword argument was passed when instantiating the serializer instance.
источник

PS

Pavel Shvedov in pro.python
ты прям вот так сделал return ProducerUpdateSerializer(queryset, data=request.data)?
источник

i

ikasymov in pro.python
return ProducerUpdateSerializer(queryset, data=self.request.data)
источник

i

ikasymov in pro.python
в stackoverflow тоже никто не помогает :(
источник

i

ikasymov in pro.python
def get_serializer(self, instance=None, data=None, many=False, partial=False):
       """If request is not PUT, allow partial updates."""
       if self.request.method == 'PUT':
           return UserSerializer(instance=instance, data=data, many=many, partial=True)
       else:
           return UserSerializer(instance=instance, data=data, many=many, partial=partial)
источник

i

ikasymov in pro.python
это пример у других почему-то работает
источник

i

ikasymov in pro.python
у меня же точно так же
источник

i

ikasymov in pro.python
Решил проблему если кому понадобится
источник

i

ikasymov in pro.python
вот
источник

i

ikasymov in pro.python
class ProducerRetrieveUpdateView(generics.RetrieveUpdateAPIView):
   permission_classes = [ProducerOwnerOrReadOnly]
   serializer_class = ProducerUpdateSerializer

   def get_serializer(self, *args, **kwargs):
       queryset = Producer.objects.get(pk=self.kwargs['pk'])

       if self.request.method == 'PUT' or self.request.method == 'PATCH':
           serializer_class = self.get_serializer_class()
           kwargs['context'] = self.get_serializer_context()
           return serializer_class(*args, **kwargs)

       if self.request.user.is_authenticated:
           return ProducerSerializer(queryset,
                                     fields=('short_info',))

       else:
           return ProducerSerializer(queryset,
                                     fields=('website', 'phone', 'email', 'contacts', 'short_info'))

   def get_queryset(self):
       return Producer.objects.filter(pk=self.kwargs['pk'])
источник