Compare commits
2 commits
548cc478b9
...
5c83230185
Author | SHA1 | Date | |
---|---|---|---|
5c83230185 | |||
54cdeb56af |
2 changed files with 28 additions and 7 deletions
|
@ -28,9 +28,18 @@ class MovieSerializer(serializers.ModelSerializer):
|
|||
def get_has_been_scheduled(self, obj):
|
||||
return Showing.objects.filter(movie_id=obj.id).exists()
|
||||
|
||||
class MovieListListSerializer(serializers.ModelSerializer):
|
||||
movie_count = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = MovieList
|
||||
fields = ["id", "name", "owner", "public", "movie_count"]
|
||||
|
||||
def get_movie_count(self, obj):
|
||||
return obj.movies.count()
|
||||
|
||||
|
||||
class MovieListSerializer(serializers.ModelSerializer):
|
||||
movie_count = serializers.SerializerMethodField()
|
||||
movies = MovieSerializer(read_only=True, many=True)
|
||||
serializer_class = MovieSerializer
|
||||
|
||||
|
@ -42,10 +51,8 @@ class MovieListSerializer(serializers.ModelSerializer):
|
|||
|
||||
class Meta:
|
||||
model = MovieList
|
||||
fields = ["id", "name", "owner", "public", "movies", "movie_count"]
|
||||
fields = ["id", "name", "owner", "public", "movies"]
|
||||
|
||||
def get_movie_count(self, obj):
|
||||
return obj.movies.count()
|
||||
|
||||
|
||||
class UserSerializer(serializers.Serializer):
|
||||
|
|
|
@ -16,7 +16,7 @@ from movie_manager.serializers import (
|
|||
MovieListSerializer,
|
||||
MovieSerializer,
|
||||
ScheduleSerializer,
|
||||
ShowingSerializer,
|
||||
ShowingSerializer, MovieListListSerializer,
|
||||
)
|
||||
|
||||
|
||||
|
@ -55,11 +55,25 @@ class MovieViewset(viewsets.ModelViewSet):
|
|||
|
||||
|
||||
class MovieListViewset(viewsets.ModelViewSet):
|
||||
queryset = MovieList.objects.prefetch_related("movies").order_by("name")
|
||||
queryset = MovieList.objects.all()
|
||||
authentication_classes = [TokenAuthentication]
|
||||
permission_classes = [permissions.IsAuthenticated | ReadOnly]
|
||||
|
||||
serializer_class = MovieListSerializer
|
||||
def get_serializer_class(self):
|
||||
if self.action == "list":
|
||||
return MovieListListSerializer
|
||||
else:
|
||||
return MovieListSerializer
|
||||
|
||||
def get_queryset(self):
|
||||
if self.action == "list":
|
||||
return MovieList.objects.filter(owner=self.request.user)
|
||||
else:
|
||||
return MovieList.objects.prefetch_related(
|
||||
"movies",
|
||||
"movies__showing_set"
|
||||
).order_by("name")
|
||||
|
||||
|
||||
def create(self, request, *args, **kwargs):
|
||||
movie_list = MovieList.objects.create(
|
||||
|
|
Loading…
Add table
Reference in a new issue