diff --git a/db/migrations/0001_initial.py b/db/migrations/0001_initial.py new file mode 100644 index 00000000..efddfc4a --- /dev/null +++ b/db/migrations/0001_initial.py @@ -0,0 +1,29 @@ +# Generated by Django 4.0.2 on 2024-12-19 21:06 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Actor', + fields=[ + ('id', models.AutoField(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='Genre', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255)), + ], + ), + ] diff --git a/db/migrations/0002_alter_genre_name.py b/db/migrations/0002_alter_genre_name.py new file mode 100644 index 00000000..dab13fa9 --- /dev/null +++ b/db/migrations/0002_alter_genre_name.py @@ -0,0 +1,18 @@ +# Generated by Django 4.0.2 on 2024-12-19 23:16 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('db', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='genre', + name='name', + field=models.CharField(max_length=255, unique=True), + ), + ] diff --git a/db/models.py b/db/models.py index 137941ff..849bd066 100644 --- a/db/models.py +++ b/db/models.py @@ -1 +1,16 @@ from django.db import models + + +class Genre(models.Model): + name = models.CharField(max_length=255, unique=True) + + def __str__(self): + return self.name + + +class Actor(models.Model): + first_name = models.CharField(max_length=255) + last_name = models.CharField(max_length=255) + + def __str__(self): + return f"{self.first_name} {self.last_name}" diff --git a/main.py b/main.py index 545f938a..c03b0117 100644 --- a/main.py +++ b/main.py @@ -1,7 +1,65 @@ import init_django_orm # noqa: F401 from django.db.models import QuerySet - +from db.models import Genre, Actor def main() -> QuerySet: - pass + # Create genres + genres = [("Western",), ("Action",), ("Dramma",)] + for (genre_name,) in genres: + Genre.objects.get_or_create(name=genre_name) + + # Create actors + actors = [ + ("George", "Klooney"), + ("Kianu", "Reaves"), + ("Scarlett", "Keegan"), + ("Will", "Smith"), + ("Jaden", "Smith"), + ("Scarlett", "Johansson"), + ] + for first_name, last_name in actors: + Actor.objects.get_or_create(first_name=first_name, last_name=last_name) + + # Update genre name "Dramma" to "Drama" + try: + genre = Genre.objects.get(name="Dramma") + genre.name = "Drama" + genre.save() + except Genre.DoesNotExist: + print("Genre 'Dramma' not found.") + + try: + actor = Actor.objects.get(first_name="George", last_name="Klooney") + actor.last_name = "Clooney" + actor.save() + except Actor.DoesNotExist: + print("Actor 'George Klooney' not found.") + + # Update actor Kianu Reaves to Keanu Reeves + try: + actor = Actor.objects.get(first_name="Kianu", last_name="Reaves") + actor.first_name = "Keanu" + actor.last_name = "Reeves" + actor.save() + except Actor.DoesNotExist: + print("Actor 'Kianu Reaves' not found.") + + # Delete the genre "Action" + try: + Genre.objects.filter(name="Action").delete() + except Genre.DoesNotExist: + print("Genre 'Action' not found.") + + # Delete all actresses with first_name "Scarlett" + Actor.objects.filter(first_name="Scarlett").delete() + + # QuerySet of actors with last_name "Smith", ordered by first_name + smith_actors = Actor.objects.filter(last_name="Smith").order_by("first_name") + + # Return or print the QuerySet + print("Actors with last name 'Smith':") + for actor in smith_actors: + print(f'{actor.first_name} {actor.last_name}') + + return smith_actors