如何处理Django项目中表数据的按时间排序问题
当我们在写一些项目如购物平台 , 图书管理系统等都会不可避免的遇到排序问题 , 因为作者正在完成一个购物系统的项目 , 所以该文就以电商购物系统来举例说明
- 在utils文件夹中新建一个modle.py文件 , – utils文件夹主要存放一些非主要文件( 主要为符合项目规范命名 )
from django.db import modelsclass BaseModle(models.Model):# 声明时间字段# 设置不更新时间create_time = models.DateTimeField(auto_now_add=True)# 设置更新时间updata_time = models.DateTimeField(auto_now=True)class Meta:# 设置迁移数据库时不创建表格abstract = True
-
然后我们在回到users这个应用中创建收货地址模型类 ( 创建收货地址是有时间排序的 )
接下来就很简单了 , 在需要该字段的模型类中直接继承该BaseModle就行了
class Address(BaseModle):user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='address')receiver = models.CharField(max_length=20)province = models.ForeignKey('areas.Area', on_delete=models.PROTECT, related_name='province_address')city = models.ForeignKey('areas.Area', on_delete=models.PROTECT, related_name='city_address')district = models.ForeignKey('areas.Area', on_delete=models.PROTECT, related_name='district_address')palce = models.CharField(max_length=50)mobile = models.CharField(max_length=11)tel = models.CharField(max_length=20, null=True, blank=True, default='')email = models.CharField(max_length=20, null=True, blank=True, default='')is_delete = models.BooleanField(default=False)class Meta:db_table = 'address'