при запросе PUT (обновление) из этой ошибкиКак обновить с методом PUT Джанго-покоя рамках
Можно не называть .is_valid(), как не было принято никаких данных = ключевое слово аргумент при создании экземпляра экземпляра сериализатора. мой взгляд:
def get_serializer(self, *args, **kwargs):
queryset = Producer.objects.get(pk=self.kwargs['pk'])
if self.request.user.is_authenticated:
return ProducerSerializer(queryset,
fields=('short_info',))
if self.request.method == 'PUT' or self.request.method == 'PATCH':
return ProducerUpdateSerializer
else:
return ProducerSerializer(queryset,
fields=('website', 'phone', 'email', 'contacts', 'short_info'))
def get_queryset(self):
return Producer.objects.filter(pk=self.kwargs['pk'])
мой сериализатору
class DynamicFieldsModelSerializer(serializers.ModelSerializer):
def __init__(self, *args, **kwargs):
# Don't pass the 'fields' arg up to the superclass
fields = kwargs.pop('fields', None)
# Instantiate the superclass normally
super(DynamicFieldsModelSerializer, self).__init__(*args, **kwargs)
if fields is not None:
for i in fields:
print self.fields.pop(i)
class ProducerSerializer(DynamicFieldsModelSerializer):
tags = TagListSerializerField()
categories = serializers.StringRelatedField(many=True)
contacts = ProducerContactSerializer(many=True)
country = CountryField(country_dict=True)
business_type = ChoicesSerializerField()
class Meta:
model = Producer
fields = ('id', 'business_type', 'logo', 'name', 'slug', 'country', 'city',
'street_address', 'zip', 'short_info', 'info', 'website',
'categories', 'tags', 'contacts', 'email', 'phone')
class ProducerUpdateSerializer(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')
при запросе PUT (обновление) из этой ошибки
Не могу назвать .is_valid(), как не был принят никаких данных = ключевое слово аргумент при инстанцировании экземпляр сериализатора.