models.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. from django.db import models
  2. from django.urls import reverse
  3. from django.contrib.auth.models import User, AbstractUser
  4. class User(AbstractUser):
  5. first_name = models.CharField(max_length=254, verbose_name='Имя', blank=False)
  6. last_name = models.CharField(max_length=254, verbose_name='Фамилия', blank=False)
  7. avatar = models.ImageField(verbose_name="Загрузите аватарку", upload_to='avatars')
  8. email = models.CharField(max_length=254, verbose_name='Пoчтa', blank=False)
  9. password = models.CharField(max_length=254, verbose_name='Пapoль', blank=False)
  10. role = models.CharField(max_length=254, verbose_name='Poль',
  11. choices=(('admin', 'Администратор'), ('user', 'Пoльзователь')), default='user')
  12. class Product(models.Model):
  13. title = models.CharField(max_length=200)
  14. manufacturer = models.ForeignKey('manufacturer', on_delete=models.SET_NULL, null=True)
  15. summary = models.TextField(max_length=1000, help_text="Enter a brief description of the product")
  16. img = models.ImageField(upload_to='img', null=True, blank=True, default=None)
  17. isbn = models.CharField('ISBN', max_length=13, help_text='13 Character <a href="https://www.isbn-international.org/content/what-isbn">ISBN number</a>')
  18. def __str__(self):
  19. return self.title
  20. def get_absolute_url(self):
  21. return reverse('product-detail', args=[str(self.id)])
  22. class Manufacturer(models.Model):
  23. name = models.CharField(max_length=100)
  24. def get_absolute_url(self):
  25. return reverse('manufacturer-detail', args=[str(self.id)])
  26. def __str__(self):
  27. return '%s' % (self.name)