сделал модель кинозалы, места кинозалов и поправил модель профиля

This commit is contained in:
Андрей Дувакин 2024-04-09 21:00:48 +05:00
parent bbf75d3e7d
commit 2d361d5342
2 changed files with 66 additions and 13 deletions

View File

@ -1,3 +1,46 @@
from django.db import models from django.db.models import Model, CharField, IntegerField, OneToOneField, CASCADE
from django.core.validators import MinValueValidator
# Create your models here.
class Auditorium(Model):
number = CharField(
max_length=20,
verbose_name='номер кинозала',
)
row_count = IntegerField(
verbose_name='количество рядов кресел в зале',
validators=[
MinValueValidator(1),
],
)
class Meta:
db_table = "timetable_auditoriums"
verbose_name = "Зал"
verbose_name_plural = "Залы"
class Rows(Model):
row_number = IntegerField(
verbose_name='номер ряда',
validators=[
MinValueValidator(1),
],
)
column_count = IntegerField(
verbose_name='количество кресел в ряду',
validators=[
MinValueValidator(1),
],
)
auditorium = OneToOneField(
Auditorium,
on_delete=CASCADE,
verbose_name="зал",
related_name="rows",
)
class Meta:
db_table = "timetable_rows"
verbose_name = "Место"
verbose_name_plural = "Места"

View File

@ -1,12 +1,16 @@
import time import time
from django.conf import settings from django.conf import settings
from django.db.models import Model, OneToOneField, CASCADE, DateField, CharField from django.db.models import Model, OneToOneField, CASCADE, DateField, CharField, ImageField
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
class Profile(Model): class Profile(Model):
def get_upload_path(self, filename):
return f'users/avatars/{self.user_id}/{time.time()}_{filename}'
user = OneToOneField( user = OneToOneField(
settings.AUTH_USER_MODEL, settings.AUTH_USER_MODEL,
verbose_name='пользователь', verbose_name='пользователь',
@ -15,22 +19,27 @@ class Profile(Model):
on_delete=CASCADE, on_delete=CASCADE,
) )
birthday = DateField( birthday = DateField(
verbose_name='дата рождения пользователя',
null=True, null=True,
blank=True, blank=True,
) )
role = CharField( role = CharField(
verbose_name='роль пользователя', verbose_name='роль пользователя',
max_length=20,
)
image = ImageField(
null=True,
blank=True,
verbose_name="аватар пользователя",
upload_to=get_upload_path,
) )
def get_upload_path(self, filename):
return f"users/avatars/{self.user_id}/{time.time()}_{filename}"
def get_image_x300(self): def get_image_x300(self):
return get_thumbnail( return get_thumbnail(
self.image, self.image,
"300x300", '300x300',
quality=51, quality=51,
crop="center", crop='center',
) )
def image_tmb(self): def image_tmb(self):
@ -39,13 +48,14 @@ class Profile(Model):
f'<img scr="{self.image.url}" width=50px>', f'<img scr="{self.image.url}" width=50px>',
) )
return "Нет изображения" return 'Нет изображения'
image_tmb.short_description = "превью" image_tmb.short_description = 'превью'
image_tmb.allow_tags = True image_tmb.allow_tags = True
list_display = ["image_tmb"] list_display = ['image_tmb']
class Meta: class Meta:
verbose_name = "данные пользователя" verbose_name = 'данные пользователя'
verbose_name_plural = "данные пользователей" verbose_name_plural = 'данные пользователей'
db_table = "users_profiles"