поправил модели и сделал миграции
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
|
||||
|
||||
|
||||
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='Жанры фильма',
|
||||
)
|
||||
|
||||
|
||||
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 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)],
|
||||
|
||||
@ -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 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 = 'Сеансы'
|
||||
|
||||
|
||||
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
|
||||
|
||||
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(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user