【发布时间】:2021-01-18 10:47:50
【问题描述】:
如何过滤子集中的元素?
class Order(models.Model):
user = models.ForeignKey(User, blank=True, null=True, on_delete=models.SET_NULL)
...
class Bill(models.Model):
order = models.ForeignKey(Order, blank=True, null=True, on_delete=models.SET_NULL))
billdate = models.DateTimeField(default=timezone.now)
payed = models.BooleanField(default=False)
...
例如:
order = Orders.objects.all()
order[0].bill_set # Should return only 3 bills
order[1].bill_set # Should return only 3 bills
order[2].bill_set # Should return only 3 bills
order[3].bill_set # Should return only 3 bills
将退回所有账单。但我只想获取最新的 3 个元素,按 billdate 排序。我该怎么做?
我想在我的视图中使用 Django Rest Framework 中的结果:
class OrderSerializer(serializers.ModelSerializer):
class Meta:
model = Order
fields = (
'id'
'bill_set'
)
class AffiliateOrderViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
serializer_class = OrderSerializer
def get_queryset(self):
return Order.objects.filter(bill_set__filter_somehow_only_the_last_3_entries_ordered_by_date)
有什么想法吗?
【问题讨论】:
标签: django django-rest-framework subset django-queryset