django - Django REST 框架过滤有问题吗?

标签 django python-3.x django-rest-framework

我在使用 Django Rest Framework 时遇到此问题。我正在尝试使用患者 ID 执行获取请求。现在,假设我查找患者 ID=6,API 返回患者 ID=6、患者 ID=26 以及任何包含数字“6”的 ID 的结果。它看起来像是在搜索子字符串。我想让它工作,以便患者 id=6 仅返回 id =6 的患者结果

序列化器.py

class Radiologypdfserializerdata(serializers.ModelSerializer):

    class Meta:
        model = models.Radiologypdf
        fields = (
            'patientid',
            'testinfo',
            'clinicalindication',
            'attendingdoctor',
            'patientname',
            'age',
            'mobilenumber',
            'sex',
            'email',
            'doctorsname',
            'doctorsregistrationnumber',
            'clinicname',
            'doctorstelno',
            'createdtime',
            'radiology_id',
            'created',

        )

api.py

class RadiologypdfViewSet(viewsets.ModelViewSet):
    """ViewSet for the radiology class"""

    queryset = models.Radiologypdf.objects.all()
    serializer_class = serializers.Radiologypdfserializerdata
    permission_classes = [permissions.IsAuthenticated]

    filter_backends = (filters.SearchFilter,)
    search_fields = ('patientid','radiology_id')

最佳答案

您可以使用django-filter为此的库。

只需安装它:

pip install django-filter

并在您的 View 集中使用,如下所示:

from django_filters.rest_framework import DjangoFilterBackend

class RadiologypdfViewSet(viewsets.ModelViewSet):
    """ViewSet for the radiology class"""

    queryset = models.Radiologypdf.objects.all()
    serializer_class = serializers.Radiologypdfserializerdata
    permission_classes = [permissions.IsAuthenticated]

    filter_backends = (DjangoFilterBackend,)
    filter_fields = ('patientid','radiology_id')

关于django - Django REST 框架过滤有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50532279/

相关文章:

python - Django - auto_now 在 models.DateTimeField 中使用什么时区?

python - 如何通过匹配每个 "(a, b), (b, c), (c, d)"的第一个和最后一个值来对元组进行排序

python - 从 django-rest 检索数据以显示在表单中

python-3.x - 如何使用 pandas get_dummies 函数消除键错误

python - 如何从条目小部件获取输入并将其输入到 sqlite3 数据库中?

python - Django Rest Framework (DRF) 如何根据 query_params 设置分页类?

django - 使用具有外键的模型序列化器在 Django Rest Framework 中的父表上执行 CRUD

python - django自定义过滤器-用行空格替换换行符

具有可变数量字段的 Django 模型

django - 当主机系统上只有Nginx时,使用Docker的静态文件