示例#1
0
def genres(request):
    try:
        return Response(GenreSerializer(Genre.objects.all(), many=True).data,
                        status=status.HTTP_200_OK)
    except:
        return Response({"exception": "happened"},
                        status=status.HTTP_500_INTERNAL_SERVER_ERROR)
示例#2
0
def genre(request, id):
    try:
        return Response(GenreSerializer(Genre.objects.get(id=id)).data,
                        status=status.HTTP_200_OK)
    except:
        return Response({"exception": "happened"},
                        status=status.HTTP_500_INTERNAL_SERVER_ERROR)
示例#3
0
class TitleListSerializer(serializers.ModelSerializer):
    category = CategorySerializer(read_only=True)
    genre = GenreSerializer(many=True, read_only=True)
    rating = serializers.FloatField(read_only=True)

    class Meta:
        model = Title
        fields = '__all__'
示例#4
0
class TitleSerializerGet(serializers.ModelSerializer):
    rating = serializers.FloatField(read_only=True)
    genre = GenreSerializer(many=True)
    category = CategorySerializer(read_only=True)

    class Meta:
        fields = '__all__'
        model = Title
示例#5
0
def genre_list(request):
    if request.method == 'GET':
        genres = Genre.objects.order_by('name')
        serializer = GenreSerializer(genres, many=True)
        return Response(serializer.data)

    elif request.method == 'POST':
        serializer = GenreSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data)
        return Response(serializer.errors)
示例#6
0
class TitlesSerializer(serializers.ModelSerializer):
    """Сериализатор для вывода тайтлов(выводит name and slug)"""
    category = CategorySerializer()
    genre = GenreSerializer(many=True)
    rating = serializers.SerializerMethodField()

    class Meta:
        model = Title
        fields = '__all__'

    def get_rating(self, obj):
        if hasattr(obj, 'rating'):
            return obj.rating
        return None
def genres(request):
    if request.method == 'GET':
        try:
            genres = Genre.objects.all()
            serializer = GenreSerializer(genres, many=True)
            return Response(serializer.data, status=status.HTTP_200_OK)
        except:
            return Response({"server error"},
                            status=status.HTTP_500_INTERNAL_SERVER_ERROR)
    elif request.method == 'POST':
        serializer = GenreSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response({"created"}, status=status.HTTP_200_OK)
        return Response({"server error"},
                        status=status.HTTP_500_INTERNAL_SERVER_ERROR)
示例#8
0
def genre_detail(request, genre_id):
    try:
        genre = Genre.objects.get(id=genre_id)
    except Genre.DoesNotExist as e:
        return Response({'message': str(e)}, status=400)

    if request.method == 'GET':
        serializer = GenreSerializer(genre)
        return Response(serializer.data)
    elif request.method == 'PUT':
        serializer = GenreSerializer(instance=genre, data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data)
        return Response(serializer.errors)
    elif request.method == 'DELETE':
        genre.delete()
        return Response({'message': 'deleted'}, status=204)
示例#9
0
 def get(self, request, pk=None, genre_id=None):
     anime = get_anime(pk)
     genre = get_genre(genre_id)
     animeGenre = get_anime_genre(anime, genre)
     serializer = GenreSerializer(genre)
     return Response(serializer.data)
示例#10
0
 def get(self, request, pk=None):
     anime = get_anime(pk)
     genres_id = anime.genres.all()
     genres = [genre.genre for genre in genres_id]
     serializer = GenreSerializer(genres, many=True)
     return Response(serializer.data)