поправил модели и сделал миграции

This commit is contained in:
Андрей Дувакин 2024-04-09 21:41:58 +05:00
parent 270b5d0aba
commit 467dc43b5c
13 changed files with 354 additions and 28 deletions

View File

@ -0,0 +1,24 @@
# Generated by Django 4.2 on 2024-04-09 16:39
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("films", "0001_initial"),
]
operations = [
migrations.AlterField(
model_name="film",
name="genres",
field=models.ManyToManyField(
help_text="Жанры фильма",
related_name="films",
related_query_name="films",
to="films.genre",
verbose_name="Жанры",
),
),
]

View File

@ -1,9 +1,9 @@
from django.db import models
from django.db.models import Model, CharField, IntegerField, DateField, ManyToManyField
from django.core.validators import MinValueValidator
class Genre(models.Model):
name = models.CharField(
class Genre(Model):
name = CharField(
'Название',
help_text='Название жанра',
max_length=100,
@ -16,30 +16,31 @@ class Genre(models.Model):
verbose_name_plural = 'Жанры'
class Film(models.Model):
name = models.CharField(
class Film(Model):
name = CharField(
'Название',
help_text='Название фильма',
max_length=100,
null=False,
)
duration = models.IntegerField(
duration = IntegerField(
'Продолжительность',
help_text='Продолжительность фильма (в минутах)',
validators=[MinValueValidator(0)],
null=False,
)
release_date = models.DateField(
release_date = DateField(
'Дата релиза',
help_text='Дата выхода фильма',
)
genres = models.ManyToManyField(
genres = ManyToManyField(
Genre,
verbose_name='Жанры',
related_name='films',
related_query_name='films',
help_text='Жанры фильма',
)

View File

@ -0,0 +1,44 @@
# Generated by Django 4.2 on 2024-04-09 16:27
import django.core.validators
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = []
operations = [
migrations.CreateModel(
name="Ticket",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"row_number",
models.IntegerField(
help_text="Номер ряда",
validators=[django.core.validators.MinValueValidator(1)],
verbose_name="Номер ряда",
),
),
(
"column_number",
models.IntegerField(
help_text="Номер кресла в ряду",
validators=[django.core.validators.MinValueValidator(1)],
verbose_name="Номер кресла",
),
),
],
),
]

View File

@ -0,0 +1,38 @@
# Generated by Django 4.2 on 2024-04-09 16:27
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
("tickets", "0001_initial"),
("timetable", "0002_rename_rows_row_filmsession"),
("users", "0001_initial"),
]
operations = [
migrations.AddField(
model_name="ticket",
name="session_id",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="tickets",
related_query_name="tickets",
to="timetable.filmsession",
),
),
migrations.AddField(
model_name="ticket",
name="user_id",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="tickets",
related_query_name="tickets",
to="users.profile",
),
),
]

View File

@ -0,0 +1,23 @@
# Generated by Django 4.2 on 2024-04-09 16:39
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("tickets", "0002_initial"),
]
operations = [
migrations.RenameField(
model_name="ticket",
old_name="session_id",
new_name="session",
),
migrations.RenameField(
model_name="ticket",
old_name="user_id",
new_name="user",
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 4.2 on 2024-04-09 16:40
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("tickets", "0003_rename_session_id_ticket_session_and_more"),
]
operations = [
migrations.RenameField(
model_name="ticket",
old_name="user",
new_name="profile",
),
]

View File

@ -1,33 +1,33 @@
from django.db import models
from django.db.models import ForeignKey, CASCADE, Model, IntegerField
from django.core.validators import MinValueValidator
from timetable.models import FilmSessions
from timetable.models import FilmSession
from users.models import Profile
class Ticket(models.Model):
session_id = models.ForeignKey(
FilmSessions,
on_delete=models.CASCADE,
class Ticket(Model):
session = ForeignKey(
FilmSession,
on_delete=CASCADE,
related_name='tickets',
related_query_name='tickets',
)
user_id = models.ForeignKey(
profile = ForeignKey(
Profile,
on_delete=models.CASCADE,
on_delete=CASCADE,
related_name='tickets',
related_query_name='tickets',
)
row_number = models.IntegerField(
row_number = IntegerField(
'Номер ряда',
null=False,
validators=[MinValueValidator(1)],
help_text='Номер ряда',
)
column_number = models.IntegerField(
column_number = IntegerField(
'Номер кресла',
null=False,
validators=[MinValueValidator(1)],

View File

@ -0,0 +1,68 @@
# Generated by Django 4.2 on 2024-04-09 16:27
import django.core.validators
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
("films", "0001_initial"),
("timetable", "0001_initial"),
]
operations = [
migrations.RenameModel(
old_name="Rows",
new_name="Row",
),
migrations.CreateModel(
name="FilmSession",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"start_datetime",
models.DateTimeField(verbose_name="Дата и время начала сеанса"),
),
(
"price",
models.FloatField(
validators=[django.core.validators.MinValueValidator(1)],
verbose_name="Цена билета",
),
),
(
"auditorium",
models.OneToOneField(
on_delete=django.db.models.deletion.CASCADE,
related_name="sessions",
to="timetable.auditorium",
verbose_name="зал",
),
),
(
"film",
models.OneToOneField(
on_delete=django.db.models.deletion.CASCADE,
related_name="sessions",
to="films.film",
verbose_name="фильм",
),
),
],
options={
"verbose_name": "Сеанс",
"verbose_name_plural": "Сеансы",
"db_table": "timetable_film_sessions",
},
),
]

View File

@ -0,0 +1,48 @@
# Generated by Django 4.2 on 2024-04-09 16:39
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
("films", "0002_alter_film_genres"),
("timetable", "0002_rename_rows_row_filmsession"),
]
operations = [
migrations.AlterField(
model_name="filmsession",
name="auditorium",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="sessions",
related_query_name="sessions",
to="timetable.auditorium",
verbose_name="Зал",
),
),
migrations.AlterField(
model_name="filmsession",
name="film",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="sessions",
related_query_name="sessions",
to="films.film",
verbose_name="Фильм",
),
),
migrations.AlterField(
model_name="row",
name="auditorium",
field=models.OneToOneField(
on_delete=django.db.models.deletion.CASCADE,
related_name="rows",
related_query_name="rows",
to="timetable.auditorium",
verbose_name="Зал",
),
),
]

View File

@ -1,7 +1,8 @@
from django.db.models import Model, CharField, IntegerField, OneToOneField, CASCADE, DateTimeField, FloatField
from django.db.models import Model, CharField, IntegerField, OneToOneField, CASCADE, DateTimeField, FloatField, \
ForeignKey
from django.core.validators import MinValueValidator
from films.models import Films
from films.models import Film
class Auditorium(Model):
@ -41,8 +42,9 @@ class Row(Model):
auditorium = OneToOneField(
Auditorium,
on_delete=CASCADE,
verbose_name='зал',
verbose_name='Зал',
related_name='rows',
related_query_name='rows',
)
class Meta:
@ -63,22 +65,23 @@ class FilmSession(Model):
],
)
film = OneToOneField(
Films,
film = ForeignKey(
Film,
on_delete=CASCADE,
verbose_name='фильм',
verbose_name='Фильм',
related_name='sessions',
related_query_name='sessions',
)
auditorium = OneToOneField(
auditorium = ForeignKey(
Auditorium,
on_delete=CASCADE,
verbose_name='зал',
verbose_name='Зал',
related_name='sessions',
related_query_name='sessions',
)
class Meta:
db_table = 'timetable_film_sessions'
verbose_name = 'Сеанс'
verbose_name_plural = 'Сеансы'

View File

@ -0,0 +1,27 @@
# Generated by Django 4.2 on 2024-04-09 16:39
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
("films", "0002_alter_film_genres"),
("users", "0001_initial"),
]
operations = [
migrations.AddField(
model_name="profile",
name="genres",
field=models.ForeignKey(
default="",
on_delete=django.db.models.deletion.CASCADE,
related_name="profiles",
related_query_name="profiles",
to="films.genre",
),
preserve_default=False,
),
]

View File

@ -0,0 +1,25 @@
# Generated by Django 4.2 on 2024-04-09 16:40
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("films", "0002_alter_film_genres"),
("users", "0002_profile_genres"),
]
operations = [
migrations.RemoveField(
model_name="profile",
name="genres",
),
migrations.AddField(
model_name="profile",
name="genres",
field=models.ManyToManyField(
related_name="profiles", related_query_name="profiles", to="films.genre"
),
),
]

View File

@ -1,10 +1,12 @@
import time
from django.conf import settings
from django.db.models import Model, OneToOneField, CASCADE, DateField, CharField, ImageField
from django.db.models import Model, OneToOneField, CASCADE, DateField, CharField, ImageField, ManyToManyField
from django.utils.safestring import mark_safe
from sorl.thumbnail import get_thumbnail
from films.models import Genre
class Profile(Model):
@ -33,6 +35,11 @@ class Profile(Model):
verbose_name='Аватар пользователя',
upload_to=get_upload_path,
)
genres = ManyToManyField(
Genre,
related_name='profiles',
related_query_name='profiles',
)
def get_image_x300(self):
return get_thumbnail(