Как аннотировать связанные объекты с помощью фильтра?

class Item(models.Model):
    name = models.CharField(max_length=255)
    user = models.ForeignKey(User)

class Document(models.Model):
   doc_type = models.CharField(max_length=10, default="DOC")
   item = models.ForeignKey(Item, related_name="docs")
   uploaded_at = models.DateTimeField(auto_now_add=True)


@api_view(["GET"])
def get_items(request):
    # docs__uploaded_at should be from objects having doc_type="DOC" only
    items = Item.objects.prefetch_related("docs").filter(user=request.user).annotate(date=Max("docs__uploaded_at")).order_by("-date")

Здесь я хочу упорядочить элементы queryset на основе поля документа uploaded_at. У Item может быть несколько или ни одного Document, поэтому упорядочивайте элементы на основе последней даты документа с DOC как doc_type, а если у него нет ни одного, то оставляйте его последним.

NOTE: Я использую django 1.9

Вернуться на верх