diff --git a/cinema/migrations/0002_actor_cinemahall_genre_movie_actors_movie_genres.py b/cinema/migrations/0002_actor_cinemahall_genre_movie_actors_movie_genres.py new file mode 100644 index 000000000..3acbacf3e --- /dev/null +++ b/cinema/migrations/0002_actor_cinemahall_genre_movie_actors_movie_genres.py @@ -0,0 +1,47 @@ +# Generated by Django 4.1 on 2024-11-04 12:31 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('cinema', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Actor', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('first_name', models.CharField(max_length=255)), + ('last_name', models.CharField(max_length=255)), + ], + ), + migrations.CreateModel( + name='CinemaHall', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255)), + ('rows', models.IntegerField(default=None)), + ('seats_in_row', models.IntegerField(default=None)), + ], + ), + migrations.CreateModel( + name='Genre', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255, unique=True)), + ], + ), + migrations.AddField( + model_name='movie', + name='actors', + field=models.ManyToManyField(related_name='movies', to='cinema.actor'), + ), + migrations.AddField( + model_name='movie', + name='genres', + field=models.ManyToManyField(related_name='movies', to='cinema.genre'), + ), + ] diff --git a/cinema/models.py b/cinema/models.py index 9e8376385..d3e5ed691 100644 --- a/cinema/models.py +++ b/cinema/models.py @@ -16,7 +16,6 @@ def __str__(self): return f"{self.first_name} {self.last_name}" - class Movie(models.Model): title = models.CharField(max_length=255) description = models.TextField() diff --git a/cinema/views.py b/cinema/views.py index b03343f06..5a04b0c3a 100644 --- a/cinema/views.py +++ b/cinema/views.py @@ -15,15 +15,13 @@ def get(self, request) -> Response: serializer = GenreSerializer(genre, many=True) return Response(serializer.data, status=status.HTTP_200_OK) - def post(self, request)-> Response: + def post(self, request) -> Response: serializer = GenreSerializer(data=request.data) serializer.is_valid(raise_exception=True) serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) - - class GenreDetail(APIView): def get_object(self, pk): return get_object_or_404(Genre, pk=pk) @@ -52,11 +50,13 @@ def delete(self, request, pk): genre.delete() return Response(status=status.HTTP_204_NO_CONTENT) + class ActorList( generics.GenericAPIView, mixins.ListModelMixin, mixins.CreateModelMixin ): + queryset = Actor.objects.all() serializer_class = ActorSerializer