У меня есть ListAPIView
, это результат доступа к URL localhost:8000/api/physicalserver_task/list
:
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 16,
"physicalservers": [],
...
код ниже:
class PhysicalServerTaskListForHomeWorkPanelAPIView(ListAPIView):
serializer_class = PhysicalServerTaskListForHomeWorkPanelSerializer
permission_classes = [IsAdminUser]
pagination_class = CommonPagination
def get_queryset(self):
filters = {'{}__contains'.format(key): value
for key, value in query_params.items()}
return PhysicalServerTask.objects.filter(**filters)
У меня есть требование,это то, что длина фильтра physicalservers
равна 0
.
вы знаете, если мы просто фильтруем id
, мы можем использовать
localhost:8000/api/physicalserver_task/list/?id=16
Но как насчет, если я хочучтобы отфильтровать счет physicalservers
0
?
EDIT-1
Мой код Serialiazer ниже:
class PhysicalServerTaskListForHomeWorkPanelSerializer(ModelSerializer):
physicalservers = PhysicalServerTaskSerializer(many=True, read_only=True)
physicalserver_count = serializers.IntegerField(write_only=True, allow_null=True)
class Meta:
model = PhysicalServerTask
fields = "__all__"
depth = 1