class RelatedArticlesSerializer(serializers.ModelSerializer): articles = ArticlesSerializer(read_only=True) class Meta: model = RelatedArticles fields = ('id', 'name', 'articles')
class CategorySerializer(serializers.ModelSerializer): articles = ArticlesSerializer(read_only=True) #TODO:nickname = serializers.CharField(source='author.nickname') class Meta: model = Category fields = ( 'id', 'category', #:TODO:'nickname', 'articles', ) def create(self, validated_data): articles_data = validated_data.pop('articles') category = Category.objects.create(**validated_data) for article_data in articles_data: Articles.objects.create(category=category, **article_data) return category
class UserSerializer(serializers.ModelSerializer): articles = ArticlesSerializer(many=True) class Meta: model = User fields = '__all__'
def articles_theme_collection(request): if request.method == 'GET': articles = NewArticle.objects.filter( category_id=1).order_by("-pubdate") serializer = ArticlesSerializer(articles, many=True) return Response(serializer.data)
def articles_collection(request): if request.method == 'GET': articles = NewArticle.objects.all() serializer = ArticlesSerializer(articles, many=True) return Response(serializer.data)
def list(self, request): queryset = self.get_queryset() serializer = ArticlesSerializer(queryset, many=True) return Response(serializer.data)