如何解决由dajngo queriset订购
我需要按date_created排序查询设置顺序
类Order(models.Model): 状态=( (“返回”,“返回”), (“交货”,“交货”), (“已交付”,“已交付”), (“新订单”,“新订单”), (“保持”,“保持”)
)
user = models.ForeignKey(User,on_delete=models.CASCADE,null=True,blank=True)
date_created = models.DateTimeField(auto_now_add=True,null=True)
status = models.CharField(max_length=200,choices=STATUS,default='new order',blank=True)
note = models.CharField(max_length=1000,blank=True)
receiver_name= models.CharField(max_length=100)
receiver_address= models.CharField(max_length=200)
receiver_phone = models.CharField(max_length=50)
order_number = models.CharField(max_length=50)
condition= models.IntegerField(blank=True,default=0,null=True)
delivery_cost = models.IntegerField(default=60,blank=True)
def __str__(self):
return self.user.username
强调文字
all_order = Order.objects.exclude(status ='new order')。order_by('order_date1')
解决方法
all_order = Order.objects.exclude(status='new order').order_by('date_created')
应该做你想做的。不确定从何处获得'order_date1'
,但是由于您的模型字段称为'date_created'
,因此您应该在Django查询中按此顺序进行排序。或者,如果您想要降序(最近的日期在前),则可以使用'-date_created'
。
或者,如果您始终希望以这种方式对Order
对象进行排序,则只需按以下方式定义模型的元类:
class Order(models.Model):
...
class Meta:
ordering = ['date_created']
然后,您不必每次检索一个查询集时都使用order_by()
方法,除非您要为该特定查询集按'date_created'
以外的顺序进行排序。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。