如何处理Django项目中表数据的按时间排序问题
当我们在写一些项目如购物平台 , 图书管理系统等都会不可避免的遇到排序问题 , 因为作者正在完成一个购物系统的项目 , 所以该文就以电商购物系统来举例说明
- 在utils文件夹中新建一个modle.py文件 , – utils文件夹主要存放一些非主要文件( 主要为符合项目规范命名 )
from django.db import models
class 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'