【发布时间】:2021-07-30 19:02:55
【问题描述】:
我有一个Django Model,OrderItem
class OrderItem(models.Model):
order = models.ForeignKey(Order, on_delete=models.CASCADE, related_name='order_line')
quantity = models.PositiveIntegerField(default=1)
title = models.CharField(max_length=100)
order_number = models.CharField(max_length=25, null=True, blank=True, verbose_name='Order Number')
order_date = models.DateField(auto_now_add=True)
dispatch_date = models.DateField(auto_now_add=True)
cancel_date = models.DateField(auto_now_add=True)
我有一个模型函数来计算今天和 OrderItem order_date 或 dispatch_date 和 order_date 之间的天数
def get_aging(self):
today = datetime.today().date()
if self.dispatch_date is not None:
aging = self.dispatch_date - self.order_date
return aging.days
elif self.cancel_date is not None:
return 0
else:
aging = today - self.order_date
return aging.days
我想通过相同的计算订购OrderItems。我尝试使用 python 排序,但我无法在 python 排序方法创建的列表上应用django FilterSet。这是我认为的代码,我正在使用自定义模板,因为我允许对数据进行内联编辑。
order_qs = OrderItem.objects.all()
sorted_qs sorted(order_qs, key= lambda a: a.get_aging())
user_filter_orders = OrderItemsFilter(request.GET, queryset=order_qs)
由于 sorted 方法返回列表的错误:
list 对象没有属性 model
有什么建议吗?
【问题讨论】:
标签: django django-models django-views django-filter