Удалить тип из списка значений

Желание удалить охранника из набора запросов.

Guard является полем многие-ко-многим в таблице InstituteGate

def delete(self, request):
        institute = self.request.query_params.get("institute", None)
        data = request.data
        queryset = InstituteGate.objects.filter(
            institute=institute, name=data["gate"])
        for i in queryset:
            guards = i.guards.all().values_list('id', flat=True,)
            print(guards)
            if data["guard"] in guards:
                i.guards.remove(data["guard"])
        return Response("Succesfully Removed Guard From gate", status=status.HTTP_200_OK)

печать охранника дает

<QuerySet [UUID('dfca4bbf-e823-4888-af6b-7fc6438c697e'), UUID('62663459a-ff71-4f5e-86c6-36405b611859'), UUID('sd52sds-2825-43ac-91b2-3cccae48b4ab'), UUID('adadss55d-4a7d-4e31-850b-f5a55beb75ce')]>

Но мне нужно

<QuerySet [('dfca4bbf-e823-4888-af6b-7fc6438c697e'), ('62663459a-ff71-4f5e-86c6-36405b611859'), ('sd52sds-2825-43ac-91b2-3cccae48b4ab'), ('adadss55d-4a7d-4e31-850b-f5a55beb75ce')]>

Что делать?

Вы можете использовать cast и textfield в django для решения этой проблемы или простой цикл for. Попробуйте использовать этот cast, импортировав его в свой проект.

from django.db.models import TextField
from django.db.models.functions import Cast

внутри вашего цикла queryset for loop попробуйте следующий подход

guards = guards.objects.annotate(str_id=Cast('id', 
output_field=TextField())).values_list('str_id', flat=True)

Надеюсь, это может помочь. Или вы также можете попробовать простой цикл for

guards = [str(g) for g in guards]

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