当前位置: 首页 > 知识库问答 >
问题:

Django REST框架-针对URL进行筛选

王凌
2023-03-14

我将Django REST框架工具包与Django1.11一起使用,并尝试根据URL过滤结果。以下是我的设置:

models.py:

from django.db import models

class Package(models.Model):
name = models.CharField(max_length=255, unique=True)
def __str__(self):
    return self.name
from rest_framework import serializers
from .models import Package

class PackageSerializer(serializers.ModelSerializer):
      class Meta:
            model = Package
            fields = ('name',)
from rest_framework import viewsets
from .models import Package
from .serializers import PackageSerializer

class PackageViewSet(viewsets.ReadOnlyModelViewSet):
     serializer_class = PackageSerializer
     queryset = Package.objects.all()
from django.conf.urls import url, include
from django.contrib import admin
from rest_framework import routers

router = routers.DefaultRouter()
router.register(r'package', views.PackageViewSet)

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^api/v1/', include(router.urls)),
]
http://127.0.0.1:8000/api/v1/package/1/

我希望通过我的包模型的name字段来过滤结果,而不是使用以下内容:

http://127.0.0.1:8000/api/v1/package/basic/

我怎么才能做到这一点呢?

共有1个答案

常雅珺
2023-03-14

在viewset中设置lookup_field属性,请参阅文档。

class PackageViewSet(viewsets.ReadOnlyModelViewSet):
    serializer_class = PackageSerializer
    queryset = Package.objects.all()
    lookup_field = 'name'
 类似资料:
  • 所以我使用REST框架创建了我的“API”,现在尝试为它做过滤。这就是我的的样子: 因此,我希望在我的JSON文件中看到“所有乘客在特别工作空间”或“所有乘客在特别航空公司”等。 根据查询参数进行筛选:http://www.django-rest-framework.org/api-guide/Filtering/#filtering-ats-query-parameters 不能真的得到它..

  • 当我要求一个图像http://127.0.0.1:8000/api/images/1/或者传入参数进行裁剪http://127.0.0.1:8000/api/images/1/?height=320 我得到的答复是: 而在http://127.0.0.1:8000/api/images/ 答复是: 为什么缩略图不容易返回主机名,我如何将基本网址追加到响应中? 以下是我的看法。派克

  • 我想我会在这里问这个问题,因为我不太确定我会错在哪里。我正在尝试使用Django Rest框架类通过AJAX执行POST请求。但是,每当事件触发时,我都会收到以下错误: 这是堆栈跟踪中显示的内容: 上下文 我试图做到这一点,当用户单击“添加到列表”按钮时,它会向用户定义的列表发送一个cafeName(以及最终的其他详细信息)。 我想知道是否有人可以看看我的代码,并给我一些指导,我哪里出了问题? 代

  • 系统事件 系统组件 系统工具 异步进程 定时器 文件处理 自定义错误处理器

  • 我将在我的框架中支持深度链接。我分析了很多教程,都详细介绍了通用链接和URL方案。 对于通用链接,我需要在关联域中托管apple应用程序站点关联文件。apple app site association文件包含team ID Bundle ID。它在框架中不可扩展。 对于URL方案,我们需要重定向到自定义URI方案。 除此之外,我正在寻找一个类似Android应用程序链接的解决方案。 有没有办法不

  • 我们在WebLogic11g下使用JSF2.1+PrimeFaces6.0+PrimeFaces-Extensions6.0.0、mojarra 2.1.7。 单击p:commandButton后,DOM inspector显示对话框已在正文和html标记之外创建,如下一个图像所示: 在正文外部呈现的对话框 如果我们使用相同的代码(没有帧)创建一个新的.xhtml,并单击p:commandButt