поправил модели и сделал миграции
This commit is contained in:
parent
270b5d0aba
commit
467dc43b5c
24
CineSync/films/migrations/0002_alter_film_genres.py
Normal file
24
CineSync/films/migrations/0002_alter_film_genres.py
Normal 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="Жанры",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -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
|
from django.core.validators import MinValueValidator
|
||||||
|
|
||||||
|
|
||||||
class Genre(models.Model):
|
class Genre(Model):
|
||||||
name = models.CharField(
|
name = CharField(
|
||||||
'Название',
|
'Название',
|
||||||
help_text='Название жанра',
|
help_text='Название жанра',
|
||||||
max_length=100,
|
max_length=100,
|
||||||
@ -16,30 +16,31 @@ class Genre(models.Model):
|
|||||||
verbose_name_plural = 'Жанры'
|
verbose_name_plural = 'Жанры'
|
||||||
|
|
||||||
|
|
||||||
class Film(models.Model):
|
class Film(Model):
|
||||||
name = models.CharField(
|
name = CharField(
|
||||||
'Название',
|
'Название',
|
||||||
help_text='Название фильма',
|
help_text='Название фильма',
|
||||||
max_length=100,
|
max_length=100,
|
||||||
null=False,
|
null=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
duration = models.IntegerField(
|
duration = IntegerField(
|
||||||
'Продолжительность',
|
'Продолжительность',
|
||||||
help_text='Продолжительность фильма (в минутах)',
|
help_text='Продолжительность фильма (в минутах)',
|
||||||
validators=[MinValueValidator(0)],
|
validators=[MinValueValidator(0)],
|
||||||
null=False,
|
null=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
release_date = models.DateField(
|
release_date = DateField(
|
||||||
'Дата релиза',
|
'Дата релиза',
|
||||||
help_text='Дата выхода фильма',
|
help_text='Дата выхода фильма',
|
||||||
)
|
)
|
||||||
|
|
||||||
genres = models.ManyToManyField(
|
genres = ManyToManyField(
|
||||||
Genre,
|
Genre,
|
||||||
verbose_name='Жанры',
|
verbose_name='Жанры',
|
||||||
related_name='films',
|
related_name='films',
|
||||||
|
related_query_name='films',
|
||||||
help_text='Жанры фильма',
|
help_text='Жанры фильма',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
44
CineSync/tickets/migrations/0001_initial.py
Normal file
44
CineSync/tickets/migrations/0001_initial.py
Normal 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="Номер кресла",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
]
|
||||||
38
CineSync/tickets/migrations/0002_initial.py
Normal file
38
CineSync/tickets/migrations/0002_initial.py
Normal 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",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -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",
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -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",
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -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 django.core.validators import MinValueValidator
|
||||||
|
|
||||||
from timetable.models import FilmSessions
|
from timetable.models import FilmSession
|
||||||
from users.models import Profile
|
from users.models import Profile
|
||||||
|
|
||||||
|
|
||||||
class Ticket(models.Model):
|
class Ticket(Model):
|
||||||
session_id = models.ForeignKey(
|
session = ForeignKey(
|
||||||
FilmSessions,
|
FilmSession,
|
||||||
on_delete=models.CASCADE,
|
on_delete=CASCADE,
|
||||||
related_name='tickets',
|
related_name='tickets',
|
||||||
related_query_name='tickets',
|
related_query_name='tickets',
|
||||||
)
|
)
|
||||||
|
|
||||||
user_id = models.ForeignKey(
|
profile = ForeignKey(
|
||||||
Profile,
|
Profile,
|
||||||
on_delete=models.CASCADE,
|
on_delete=CASCADE,
|
||||||
related_name='tickets',
|
related_name='tickets',
|
||||||
related_query_name='tickets',
|
related_query_name='tickets',
|
||||||
)
|
)
|
||||||
|
|
||||||
row_number = models.IntegerField(
|
row_number = IntegerField(
|
||||||
'Номер ряда',
|
'Номер ряда',
|
||||||
null=False,
|
null=False,
|
||||||
validators=[MinValueValidator(1)],
|
validators=[MinValueValidator(1)],
|
||||||
help_text='Номер ряда',
|
help_text='Номер ряда',
|
||||||
)
|
)
|
||||||
|
|
||||||
column_number = models.IntegerField(
|
column_number = IntegerField(
|
||||||
'Номер кресла',
|
'Номер кресла',
|
||||||
null=False,
|
null=False,
|
||||||
validators=[MinValueValidator(1)],
|
validators=[MinValueValidator(1)],
|
||||||
|
|||||||
@ -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",
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -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="Зал",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -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 django.core.validators import MinValueValidator
|
||||||
|
|
||||||
from films.models import Films
|
from films.models import Film
|
||||||
|
|
||||||
|
|
||||||
class Auditorium(Model):
|
class Auditorium(Model):
|
||||||
@ -41,8 +42,9 @@ class Row(Model):
|
|||||||
auditorium = OneToOneField(
|
auditorium = OneToOneField(
|
||||||
Auditorium,
|
Auditorium,
|
||||||
on_delete=CASCADE,
|
on_delete=CASCADE,
|
||||||
verbose_name='зал',
|
verbose_name='Зал',
|
||||||
related_name='rows',
|
related_name='rows',
|
||||||
|
related_query_name='rows',
|
||||||
)
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -63,22 +65,23 @@ class FilmSession(Model):
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
film = OneToOneField(
|
film = ForeignKey(
|
||||||
Films,
|
Film,
|
||||||
on_delete=CASCADE,
|
on_delete=CASCADE,
|
||||||
verbose_name='фильм',
|
verbose_name='Фильм',
|
||||||
related_name='sessions',
|
related_name='sessions',
|
||||||
|
related_query_name='sessions',
|
||||||
)
|
)
|
||||||
|
|
||||||
auditorium = OneToOneField(
|
auditorium = ForeignKey(
|
||||||
Auditorium,
|
Auditorium,
|
||||||
on_delete=CASCADE,
|
on_delete=CASCADE,
|
||||||
verbose_name='зал',
|
verbose_name='Зал',
|
||||||
related_name='sessions',
|
related_name='sessions',
|
||||||
|
related_query_name='sessions',
|
||||||
)
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
db_table = 'timetable_film_sessions'
|
db_table = 'timetable_film_sessions'
|
||||||
verbose_name = 'Сеанс'
|
verbose_name = 'Сеанс'
|
||||||
verbose_name_plural = 'Сеансы'
|
verbose_name_plural = 'Сеансы'
|
||||||
|
|
||||||
|
|||||||
27
CineSync/users/migrations/0002_profile_genres.py
Normal file
27
CineSync/users/migrations/0002_profile_genres.py
Normal 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,
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -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"
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -1,10 +1,12 @@
|
|||||||
import time
|
import time
|
||||||
|
|
||||||
from django.conf import settings
|
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 django.utils.safestring import mark_safe
|
||||||
from sorl.thumbnail import get_thumbnail
|
from sorl.thumbnail import get_thumbnail
|
||||||
|
|
||||||
|
from films.models import Genre
|
||||||
|
|
||||||
|
|
||||||
class Profile(Model):
|
class Profile(Model):
|
||||||
|
|
||||||
@ -33,6 +35,11 @@ class Profile(Model):
|
|||||||
verbose_name='Аватар пользователя',
|
verbose_name='Аватар пользователя',
|
||||||
upload_to=get_upload_path,
|
upload_to=get_upload_path,
|
||||||
)
|
)
|
||||||
|
genres = ManyToManyField(
|
||||||
|
Genre,
|
||||||
|
related_name='profiles',
|
||||||
|
related_query_name='profiles',
|
||||||
|
)
|
||||||
|
|
||||||
def get_image_x300(self):
|
def get_image_x300(self):
|
||||||
return get_thumbnail(
|
return get_thumbnail(
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user