models.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. # coding=utf-8
  2. from django.db import models
  3. from django.utils import timezone
  4. from apps.product.models import Product
  5. from apps.customer.models import Customer, CustomerAddress
  6. class ProductOrder(models.Model):
  7. WAIT_PAY = 1
  8. PAID = 2
  9. FINISHED = 3
  10. REVOKE = 4
  11. STATUS_CHOICES = (
  12. (WAIT_PAY, u'待支付'),
  13. (PAID, u'已支付'),
  14. (FINISHED, u'已完成'),
  15. (REVOKE, u'已取消'),
  16. )
  17. product = models.ForeignKey(Product, verbose_name=u'商品', on_delete=models.PROTECT)
  18. create_time = models.DateTimeField(verbose_name=u"添加时间", auto_now_add=True, editable=False)
  19. no = models.CharField(max_length=64, verbose_name=u"单号", null=True, editable=False, blank=True)
  20. status = models.PositiveSmallIntegerField(choices=STATUS_CHOICES, verbose_name=u'状态', default=WAIT_PAY)
  21. customer = models.ForeignKey(Customer, verbose_name=u'客户', on_delete=models.PROTECT, editable=False)
  22. customer_address = models.ForeignKey(CustomerAddress, verbose_name=u'收货信息', on_delete=models.PROTECT, editable=False)
  23. count = models.IntegerField(verbose_name=u'购买数量')
  24. price = models.BigIntegerField(verbose_name=u'单价', editable=False)
  25. amount = models.BigIntegerField(verbose_name=u'合计金额', editable=False)
  26. notes = models.CharField(max_length=1000, verbose_name=u'备注', null=True)
  27. delete = models.BooleanField(verbose_name=u'删除', default=False, editable=False)
  28. def generateNo(self):
  29. now = timezone.now()
  30. no = '%s-%s-%04d' % ('TC', now.strftime('%Y%m%d'), self.id)
  31. return no
  32. class Meta:
  33. db_table = 'product_order'
  34. verbose_name = u'商品订单'
  35. ordering = ('-id',)
  36. default_permissions = ()