SomeOneElseElse
@SomeOneElseElse

Django, как отнять проценты от суммы?

Как отнять процент скидки товара от суммы товара? вот код P.S(цена указана через Decimal)

class Product(models.Model):
	name 			= models.CharField(max_length=40)
	slug				= models.SlugField(unique=True, blank=True)
	price 			= models.DecimalField(max_digits=10, decimal_places=2, default=0)
	discount			= models.IntegerField(default=0)
	stock		        = models.PositiveIntegerField(default=1)
	category		 	= models.ForeignKey(ProductCategory, blank=True, null=True, default=None)
	short_description	= models.TextField(max_length=220, blank=True, default=None)
	description		= models.TextField(max_length=500, blank=True, default=None)

	is_active			= models.BooleanField(default=True)
	publish			= models.DateField(auto_now=False, auto_now_add=True)
	timestamp		= models.DateTimeField(auto_now=False, auto_now_add=True)
	

	def __str__(self):
		return "{0}:|:{1}".format(self.price, self.name)

	class Meta:
		ordering 						= ["-timestamp"]
		verbose_name 					= 'Product'
		verbose_name_plural 			= 'Products'



	def get_absolute_url(self):
		#return reverse("products:product_url", kwargs={"slug": self.slug})
		return "/products/product/%s" %(self.slug)

	def save(self, *args, **kwargs):
		discount			= self.discount
		price 			= self.price
		if discount > 0:

		super(Product, self).save(*args, **kwargs)
  • Вопрос задан
  • 1533 просмотра
Решения вопроса 1
SomeOneElseElse
@SomeOneElseElse Автор вопроса
Проще простого,
Если есть калькулятор, то нет проблем: набираете сумму-операция вычитания в %-нажать на кнопку со знаком % и калькулятор сам выдаст результат. Если хотите в ручную, то: 1. Необходимо размер процентов перевести в коэффициент (проценты разделить на 100); 2. Сумму умножить на коэффициент, получите сумму, соответствующую процентам; 3. От суммы отнять сумму процентов. Например, сумма 100 руб. , проценты-10%. 1. 10/100=0,1; 2. 100х0,1=10 руб. ; 3. 100-10=90 руб. Эта задача начальных классов.

вот код

def save(self, *args, **kwargs):
		discount						= self.discount
		price 							= self.price
		if discount > 0:
			recount_of_discount 		= ( discount / 100 )
			print(recount_of_discount)
			multiplay_sum_on_coef		=  float(price) * float(recount_of_discount)
			print(multiplay_sum_on_coef)
			from_sum_minus_percent 		=  float(price) - float(multiplay_sum_on_coef)
			print(float(from_sum_minus_percent))
		super(Product, self).save(*args, **kwargs)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@artinnok
бекенд-программист
PEP8 Вам под подушку, а код - в топку.
Ответ написан
Комментировать
sim3x
@sim3x
In [2]: from decimal import Decimal

In [3]: Decimal(10.11) * Decimal(1 - 20/100)
Out[3]: Decimal('8.087999999999999994226840272')

ПС Отключите ето выравнивание, ради Св Торвальдса
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы