Untitled
unknown
python
a year ago
3.6 kB
3
Indexable
Never
from django.db import models from django.utils import timezone from django.contrib.auth.models import User from phonenumber_field.modelfields import PhoneNumberField class Flat(models.Model): owner = models.CharField('ФИО владельца', max_length=200) owners_phonenumber = models.CharField('Номер владельца', max_length=20) created_at = models.DateTimeField( 'Когда создано объявление', default=timezone.now, db_index=True) description = models.TextField('Текст объявления', blank=True) price = models.IntegerField('Цена квартиры', db_index=True) town = models.CharField( 'Город, где находится квартира', max_length=50, db_index=True) town_district = models.CharField( 'Район города, где находится квартира', max_length=50, blank=True, help_text='Чертаново Южное') address = models.TextField( 'Адрес квартиры', help_text='ул. Подольских курсантов д.5 кв.4') floor = models.CharField( 'Этаж', max_length=3, help_text='Первый этаж, последний этаж, пятый этаж') rooms_number = models.IntegerField( 'Количество комнат в квартире', db_index=True) living_area = models.IntegerField( 'количество жилых кв.метров', null=True, blank=True, db_index=True) has_balcony = models.NullBooleanField('Наличие балкона', db_index=True) active = models.BooleanField('Активно-ли объявление', db_index=True) construction_year = models.IntegerField( 'Год постройки здания', null=True, blank=True, db_index=True) new_building = models.BooleanField('Новостройка', default=None, null=True, blank=True) liked_by = models.ManyToManyField(User, verbose_name='кто лайкнул', related_name='liked_flats', blank=True) owner_pure_phone = PhoneNumberField('Нормализованный номер владельца', blank=True, db_index=True) def __str__(self): return f'{self.town}, {self.address} ({self.price}р.)' class Complain(models.Model): user = models.ForeignKey(User, verbose_name='Кто пожаловался', on_delete=models.CASCADE, related_name='complains') flat = models.ForeignKey(Flat, verbose_name='Квартира, на которую оставили жалобу', on_delete=models.CASCADE, related_name='complains') text = models.TextField('Текст жалобы', blank=True, null=True) def __str__(self): return f'{self.flat},{self.user}' class Owner(models.Model): name = models.CharField('ФИО владельца', max_length=200, db_index=True) phonenumber = models.CharField('Номер владельца', max_length=20, db_index=True) pure_phone = PhoneNumberField('Нормализованный номер владельца', blank=True, db_index=True) flats = models.ManyToManyField( Flat, verbose_name='Квартиры в собственности', related_name='owners', blank=True ) def __str__(self): return f'{self.name}, {self.pure_phone}'