Skip to content

Commit

Permalink
second_try
Browse files Browse the repository at this point in the history
small change
  • Loading branch information
lyashkun committed Sep 3, 2024
1 parent c6c10ac commit 59cfa75
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 31 deletions.
3 changes: 1 addition & 2 deletions db/models.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
from django.conf import settings
from django.contrib.auth.models import AbstractUser
from django.core.exceptions import ValidationError
from django.db import models

import settings


class Genre(models.Model):
name = models.CharField(max_length=255, unique=True)
Expand Down
28 changes: 14 additions & 14 deletions services/movie.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@


def get_movies(
genres_ids: list[int] = None,
actors_ids: list[int] = None,
title: str = None,
genres_ids: list[int] | None = None,
actors_ids: list[int] | None = None,
title: str | None = None,
) -> QuerySet:
queryset = Movie.objects.all()

Expand All @@ -26,20 +26,20 @@ def get_movie_by_id(movie_id: int) -> Movie:
return Movie.objects.get(id=movie_id)


@transaction.atomic
def create_movie(
movie_title: str,
movie_description: str,
genres_ids: list = None,
actors_ids: list = None,
genres_ids: list | None = None,
actors_ids: list | None = None,
) -> Movie:
with transaction.atomic():
movie = Movie.objects.create(
title=movie_title,
description=movie_description,
)
if genres_ids:
movie.genres.set(genres_ids)
if actors_ids:
movie.actors.set(actors_ids)
movie = Movie.objects.create(
title=movie_title,
description=movie_description,
)
if genres_ids:
movie.genres.set(genres_ids)
if actors_ids:
movie.actors.set(actors_ids)

return movie
30 changes: 16 additions & 14 deletions services/order.py
Original file line number Diff line number Diff line change
@@ -1,30 +1,32 @@
from django.db import transaction
from django.db.models import QuerySet

from db.models import Order, Ticket
from django.contrib.auth import get_user_model


@transaction.atomic
def create_order(
tickets: list[dict],
username: str,
date: str | None = None
) -> Order:
with transaction.atomic():
user = get_user_model().objects.get(username=username)
order = Order.objects.create(user=user)
if date:
order.created_at = date
order.save(update_fields=["created_at"])
for ticket in tickets:
Ticket.objects.create(
order=order,
row=ticket["row"],
seat=ticket["seat"],
movie_session_id=ticket["movie_session"]
)
user = get_user_model().objects.get(username=username)
order = Order.objects.create(user=user)
if date:
order.created_at = date
order.save(update_fields=["created_at"])
for ticket in tickets:
Ticket.objects.create(
order=order,
row=ticket["row"],
seat=ticket["seat"],
movie_session_id=ticket["movie_session"]
)
return order


def get_orders(username: str | None = None) -> Order:
def get_orders(username: str | None = None) -> QuerySet[Order]:
queryset = Order.objects.all()
if username:
queryset = queryset.filter(user__username=username)
Expand Down
2 changes: 1 addition & 1 deletion settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
USE_TZ = False

INSTALLED_APPS = [
"db",
"django.contrib.contenttypes",
"django.contrib.auth",
"db",
]

0 comments on commit 59cfa75

Please sign in to comment.