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

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