У меня есть следующие настройки:
У меня есть базовое отношение блога и статьи, где я получаю все блоги и связанные с ними статьи:
class BlogSerializer(serializers.ModelSerializer):
articles = ArticleSerializer(many=True, read_only=True)
class Meta:
model = Blog
fields = ('id', 'name', 'articles')
depth = 0
class BlogViewSet(ViewSetMixin, GenericAPIView):
queryset = Blog.objects.all()
serializer_class = BlogSerializer
Теперь я хочу сохранить вещи какthe are, НО:
Когда вызывается представление списка (например, api / blogs), должны отправляться только идентификаторы статей, поэтому я расширил свой просмотр до:
class BlogViewSet(ViewSetMixin, GenericAPIView, ..):
queryset = Blog.objects.all()
serializer_class = BlogSerializer
def get_serializer(self, *args, **kwargs):
# pseudo code
if self.context['request'].action == 'list':
serializer = super(BlogViewSet, self).get_serializer(*args, *kwargs)
serializer.fields['articles'] = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
serializer.is_valid()
return serializer
я просто хотел переопределить соответствующее поле article с помощью PrimaryKeyRelatedField, чтобы доставлялись только идентификаторы.
Но я получаю пустые результаты (без блогов и статей вообще), и у меня нетидея почему ... какие-либо идеи или предложения?
спасибо и приветствия!