Django упорядочивание с отношениями "многие ко многим" в модели

Я использую Django-rest-framework modelviewset, у меня есть отношения "многие-ко-многим" с моими моделями ниже:

class Data(TimestampMixin):
    user = models.ForeignKey(
        "User",
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name="files",
    )
    file = models.FileField(upload_to=user_directory_path, null=True, blank=True)
    doc_id = models.TextField(null=True, blank=True)
    url = models.CharField(max_length=255, null=True, blank=True)
    deleted = models.BooleanField(default=False)
    tags = models.ManyToManyField("Tag", blank=True, null=True)


class Tag(models.Model):
    team = models.ForeignKey("Team", on_delete=models.CASCADE, blank=True, null=True)
    name = models.TextField(max_length=255)

Теперь вот моя проблема, я хочу создать сортировку по имени тега, и вот что у меня есть в Model-view-set:

class UserDataViewSet(ModelViewSet):
    queryset = Data.objects.all()
    serializer_class = UserDataSerializer
    ordering_fields = ["file"]

    def get_queryset(self):
        user = self.request.user

        queryset = super().get_queryset()
        owner_id = getattr(self.request.user.team, "owner_id", None)

        if user is not None:
            if owner_id is not None:
                queryset = queryset.filter(user=owner_id, deleted=False)
            else:
                queryset = queryset.filter(user=user, deleted=False)

        ordering = self.request.query_params.get("ordering", "")

        if ordering == "tags":
            pass

        return queryset

Как вы можете видеть, у меня есть условие относительно ordering == tags, я хочу выполнить сортировку внутри условия. Теперь я создал сырой запрос, который подходит для моих нужд, но я не знаю, как выполнить его на стороне drf:

select
    *
from
    users_data ud
left join users_data_tags udt on
    ud.id = udt.data_id
left join users_tag ut on
    udt.tag_id = ut.id 
    where ud.user_id = 1
order by ut."name" 
Вернуться на верх