如何处理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'