1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import django
- from django.contrib.auth.models import AbstractUser
- from django.core.exceptions import ValidationError
- from django.db import models
- from django.core.validators import FileExtensionValidator
- from django.urls import reverse
- from django.utils import timezone
- class Category (models.Model):
- name = models.CharField(max_length=100, help_text="Введите категории")
- def __str__(self):
- return self.name
- class CastomUser(AbstractUser):
- first_name = models.CharField(max_length=254, verbose_name='Имя', blank=False)
- last_name = models.CharField(max_length=254, verbose_name='Фамилия', blank=False)
- email = models.CharField(max_length=254, verbose_name='Пoчтa', blank=False)
- password = models.CharField(max_length=254, verbose_name='Пapoль', blank=False)
- role = models.CharField(max_length=254, verbose_name='Poль',
- choices=(('admin', 'Администратор'), ('user', 'Пoльзователь')), default='user')
- class Application(models.Model):
- title = models.CharField(max_length=200)
- summary = models.TextField(help_text="Опишите свою заявку ")
- STATUS_CHOICES = [
- ('N', 'Новая'),
- ('P', 'Принято в работу'),
- ('C', 'Выполнено')
- ]
- def validate_image(fieldfile_obj):
- filesize = fieldfile_obj.file.size
- megabyte_limit = 2.0
- if filesize > megabyte_limit * 1024 * 1024:
- raise ValidationError("Max file size is %sMB" % str(megabyte_limit))
- category = models.ForeignKey(Category, help_text='Выберите категорию', on_delete=models.CASCADE)
- photo_file = models.ImageField(max_length=254, upload_to='image/', validators=[validate_image, FileExtensionValidator(['jpg', 'jpeg', 'png', 'bmp'])])
- status = models.CharField(max_length=254, verbose_name='Статус', choices=STATUS_CHOICES, default='N')
- date = models.DateTimeField(verbose_name='Дата добавления', default=django.utils.timezone.now)
- user = models.ForeignKey(CastomUser, verbose_name='Пользователь', on_delete=models.CASCADE)
- def get_absolute_url(self):
- return reverse('application_leist', args=[str(self.id)])
- def __str__(self):
- return self.title
- class Product(models.Model):
- name = models.CharField(max_length=255)
- description = models.TextField()
- def __str__(self):
- return self.name
|