Как получить текущего пользователя в модели?
Есть два объекта: Пользователь и Продукт. У пользователя есть скидка, у продукта есть цена и еще есть одна функция, которая считает цену со скидкой смотря на пользователя.
Не удается получить текущего пользователя...
Как сделать функцию get_discount_price в модели Product?
модели:
class Account(models.Model):
user = models.OneToOneField(User, null=True, blank=True, on_delete=models.CASCADE)
fullname = models.CharField(default='', max_length=200, null=True, blank=True)
discount = models.IntegerField(default=0, null=True, blank=True)
phone = models.CharField(default='', max_length=100, null=True, blank=True)
address = models.TextField(default='', null=True, blank=True)
date_create = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.user.username
class Meta:
verbose_name = 'Пользователь'
verbose_name_plural = 'Пользователи'
ordering = ('-date_create',)
class Product(models.Model):
title = models.CharField(max_length=255)
barcode = models.CharField(max_length=255, null=True, blank=True)
slug = models.CharField(max_length=255, null=True, blank=True)
brand = models.CharField(max_length=255, null=True, blank=True)
description = models.TextField(null=True, blank=True)
price = models.IntegerField()
file = ResizedImageField(size=[1000, 700], quality=100, verbose_name='Картинка', upload_to='photo/%Y/%m/%d/',
null=True, blank=True)
date_create = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
@property
def get_discount_price(self):
total = self.price - (int((self.price / 100)) * self.request.user.account.discount)
return total
def datepublished(self):
return self.date_create.strftime('%d.%m.%Y')
def save(self, *args, **kwargs):
self.slug = slugify(str(self.id) + self.title)
super(Product, self).save(*args, **kwargs)
class Meta:
verbose_name = 'Продукт'
verbose_name_plural = 'Продукты'
ordering = ('-date_create',)