Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

abstract_models.py 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from decimal import Decimal
  2. from django.contrib.auth.models import User
  3. from django.db import models
  4. from django.utils.translation import ugettext as _
  5. class AbstractProductRecord(models.Model):
  6. u"""
  7. A record of a how popular a product is.
  8. This used be auto-merchandising to display the most popular
  9. products.
  10. """
  11. product = models.OneToOneField('product.Item')
  12. num_views = models.PositiveIntegerField(default=0)
  13. num_basket_additions = models.PositiveIntegerField(default=0)
  14. num_purchases = models.PositiveIntegerField(default=0, db_index=True)
  15. class Meta:
  16. abstract = True
  17. ordering = ['-num_purchases']
  18. class AbstractUserRecord(models.Model):
  19. u"""
  20. A record of a user's activity.
  21. """
  22. user = models.OneToOneField('auth.User')
  23. # Browsing stats
  24. num_product_views = models.PositiveIntegerField(default=0)
  25. num_basket_additions = models.PositiveIntegerField(default=0)
  26. # Order stats
  27. num_orders = models.PositiveIntegerField(default=0, db_index=True)
  28. num_order_lines = models.PositiveIntegerField(default=0, db_index=True)
  29. num_order_items = models.PositiveIntegerField(default=0, db_index=True)
  30. total_spent = models.DecimalField(decimal_places=2, max_digits=12, default=Decimal('0.00'))
  31. date_last_order = models.DateTimeField(blank=True, null=True)
  32. class Meta:
  33. abstract = True