Django-rest-framework 多个 url 参数

2024-03-19

如何将“示例对象”映射到 url:website.com/api/<user>/<slug>.

我明白了
invalid literal for int() with base 10: 'username'错误。所以我知道我需要使用用户 ID 才能映射到对象,这是因为如果我使用 user_id (整数)(url:website.com/api/<user_id>/<slug>)而不仅仅是用户/用户名(字符串)。

当将对象从 user_id (整数)映射到另一个字段(如 user (字符串))时,有没有办法覆盖默认值?

另外我不明白为什么在中传递用户而不是 user_iddef get_object(Api View) 中并没有解决这个问题。

Url

urlpatterns = [
    url(r'^api/(?P<user>\w+)/(?P<slug>[\w-]+)/$', ExampleDetailAPIView.as_view(), name='example'),
]

Api View

class ExampleDetailAPIView(RetrieveAPIView):
    queryset = Example.objects.all()
    serializer_class = ExampleDetailSerializer

    def get_object(self):
        user = self.kwargs.get('user')
        slug = self.kwargs.get('slug')
        return Example.objects.get(user=user, slug=slug)

    def get_serilizer_context(self, *args, **kwargs):
        return {'request': self.request}

串行器

class ExampleDetailSerializer(HyperlinkedModelSerializer):
    url = serializers.SerializerMethodField()

    class Meta:
        model = Example
        fields = [
            'url',
        ]

    def get_url(self, obj):
        request = self.context.get('request')
        return obj.get_api_url(request=request)

Model

class Example(models.Model):
    user                = models.ForeignKey(settings.AUTH_USER_MODEL, default=1)
    example_name         = models.CharField(max_length=100)
    slug                = models.SlugField(max_length=100, blank=True)

    class Meta:
        unique_together = ('user', 'slug')

    def get_api_url(self, request=None):
        return api_reverse('example-api:example', kwargs={'user': self.user.username, 'slug': self.slug}, request=request)

@receiver(pre_save, sender=Example)
def pre_save_example_slug_receiver(sender, instance, *args, **kwargs):
    slug = slugify(instance.example_name)
    instance.slug = slug

您可以使用username在网址中。为此,您必须首先手动找到用户,然后使用其id找到Example object:

def get_object(self):
    username = self.kwargs.get('username')
    slug = self.kwargs.get('slug')

    # find the user
    user = User.objects.get(username=username)

    return Example.objects.get(user=user.id, slug=slug)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django-rest-framework 多个 url 参数 的相关文章

  • Django 模板标签内字符串连接最佳实践

    我正在尝试连接一些字符串以格式化模板标记内的 URL 但我找不到一种优雅的方法 到目前为止 我所拥有的是 button Activate http site domain url registration activate activati
  • “一旦获取切片就无法更新查询”。最佳实践?

    由于我的项目的性质 我发现自己不断地从查询集中取出切片 如下所示 Thread objects filter board requested board id order by updatedate 10 但这给我带来了实际对我选择的元素进
  • PyTorch 给出 cuda 运行时错误

    我对我的代码做了一些小小的修改 以便它不使用 DataParallel and DistributedDataParallel 代码如下 import argparse import os import shutil import time
  • 小部件之间的自定义信号

    尝试将信号从一个 gtk EventBox 子级发送到另一个 在 init HeadMode 第 75 行 上出现错误 类型错误 未知信号名称 消息发送 why usr bin env python coding utf8 import p
  • Python中列表中两个连续元素的平均值

    我有一个偶数个浮点数的列表 2 34 3 45 4 56 1 23 2 34 7 89 我的任务是计算 1 和 2 个元素 3 和 4 5 和 6 等元素的平均值 在 Python 中执行此操作的快捷方法是什么 data 2 34 3 45
  • 更改 x 轴比例

    我使用 Matlab 创建了这个图 使用 matplotlib x 轴绘制大数字 例如 100000 200000 300000 我想要 1 2 3 和 10 5 之类的值来指示它实际上是 100000 200000 300000 有没有一
  • Pandas:如何将数据框插入 Clickhouse

    我正在尝试将 Pandas 数据框插入 Clickhouse 这是我的代码 import pandas import sqlalchemy as sa uri clickhouse default localhost default ch
  • 设置 verify_certs=False 但 elasticsearch.Elasticsearch 因证书验证失败而引发 SSL 错误

    self host KibanaProxy 自我端口 443 self user 测试 self password 测试 我需要禁止证书验证 使用选项时它与curl一起使用 k在命令行上 但是 在使用 Elasticsearch pytho
  • 如何使用 Bokeh 动态隐藏字形和图例项

    我正在尝试在散景中实现复选框 其中每个复选框应显示 隐藏与其关联的行 我知道可以通过图例来实现这一点 但我希望这种效果同时在两个图中发生 此外 图例也应该更新 在下面的示例中 出现了复选框 但不执行任何操作 我显然不明白如何更新用作源的数据
  • 迭代列表的奇怪速度差异

    我创建了两个重复两个不同值的长列表 在第一个列表中 值交替出现 在第二个列表中 一个值出现在另一个值之前 a1 object object 10 6 a2 a1 2 a1 1 2 然后我迭代它们 不对它们执行任何操作 for in a1 p
  • `pyqt5'错误`元数据生成失败`

    我正在尝试安装pyqt5使用带有 M1 芯片和 Python 3 9 12 的 mac 操作系统 我怀疑M1芯片可能是原因 我收到一个错误metadata generation failed 最小工作示例 directly in the t
  • 自托管 WCF REST 服务和基本身份验证

    我创建了一个自托管的 WCF REST 服务 带有 WCF REST Starter Kit Preview 2 中的一些额外内容 这一切工作正常 我现在正在尝试向服务添加基本身份验证 但我在 WCF 堆栈中遇到了一些相当大的障碍 这阻止了
  • 在 Windows 上使用带有对数刻度的 matplotlib 时出现 Unicode 错误

    我正在使用 python 2 6 和 matplotlib 如果我运行 matplotlib 库页面中提供的示例 histogram demo py 它工作正常 我已经大大简化了这个脚本 import numpy as np import
  • Python对象初始化性能

    我只是做了一些快速的性能测试 我注意到一般情况下初始化列表比显式初始化列表慢大约四到六倍 这些可能是错误的术语 我不确定这里的行话 例如 gt gt gt import timeit gt gt gt print timeit timeit
  • Python问题:打开和关闭文件返回语法错误

    大家好 我发现了这个有用的 python 脚本 它允许我从网站获取一些天气数据 我将创建一个文件和其中的数据集 有些东西不起作用 它返回此错误 File
  • 在 Bootstrap 中使单击的选项卡处于活动状态

    我正在使用 Django 并将 Bootstrap 与 Django 集成 这是我的导航栏 HTML 代码 div class navbar navbar default navbar fixed top div class contain
  • 计算互相关函数?

    In R 我在用ccf or acf计算成对互相关函数 以便我可以找出哪个移位给我带来最大值 从它的外观来看 R给我一个标准化的值序列 Python 的 scipy 中是否有类似的东西 或者我应该使用fft模块 目前 我正在这样做 xcor
  • 操作错误:(sqlite3.OperationalError) SQL 变量太多,同时将 SQL 与数据帧一起使用

    我有一个熊猫数据框 如下所示 activity User Id 0 VIEWED MOVIE 158d292ec18a49 1 VIEWED MOVIE 158d292ec18a49 2 VIEWED MOVIE 158d292ec18a4
  • 如何在 Django 中使我的模型字段可选?

    我正在尝试遵循底部的完整示例 https docs djangoproject com en dev topics auth customizing https docs djangoproject com en dev topics au
  • python 中的 after() 与 update()

    我是 python 新手 开始使用 tkinter 作为画布 到目前为止 我使用 update 来更新我的画布 但还有一个 after 方法 谁能给我解释一下这个函数 请举个例子 两者之间有什么区别 root after integer c

随机推荐

  • 导航控制器中的中心搜索栏 swift

    我需要更改导航控制器中搜索栏的方向以设置为中心 我使用以下代码以编程方式创建了搜索栏 lazy var searchBar UISearchBar UISearchBar frame CGRectMake 100 40 440 40 在 v
  • 引起原因:android.database.sqlite.SQLiteException:没有这样的表:strings:,编译时:SELECT id,string FROM strings WHERE id =?

    我收到此错误 07 16 20 58 27 299 E AndroidRuntime 14005 Caused by android database sqlite SQLiteException no such table strings
  • android studio 9补丁编辑器突然黑屏

    任何有在 AS 中使用 9 补丁编辑器的经验的人突然开始使用黑色背景的图像 我使用它没有任何问题 现在突然我无法进行任何编辑 下图应该有透明背景 如果我尝试拖动可拉伸补丁 则不会发生任何变化 可以这么说 它会不断重置自身 此更改也发生在同一
  • 在 Django 模型中存储和转义 Django 标签和过滤器

    我将模型中的内容输出到模板 但是某些模型字段调用存储在其他模型中的数据 这种情况只发生在少数领域 我想知道是否使用if与在模型中存储 django 标签相比 使用 django 标签来评估这一点会更有效 答复这个问题 https stack
  • Haskell 中的基因编程

    有 GenProg http hackage haskell org package genprog http hackage haskell org package genprog 例如 但这仅涉及数值优化 在本例中找到描述数据的方程 但
  • 具有固定标题和固定列的可滚动 HTML 表格

    我想创建一个包含可滚动数据的表 我必须冻结表格的第一行和第一列 表格的第一行和第一列必须自动调整宽度和高度 以适应表格内容区域中的可变单元格尺寸 因为用户将添加具有可变内容量的新表格单元格 有人问了一个相关问题 如何在滚动时锁定表格的第一行
  • 当(深度)克隆时,使用 String.Copy 还是 str1 = str2?

    当 深度 克隆自定义对象时 我应该使用clone str1 String Copy obj str1 or clone str1 obj str1 我更喜欢后者 更短 更快 但它 安全 吗 我会指出这个线程 https stackoverf
  • ODP.NET 托管库确实可以解析别名,但 32 位库可以

    我的机器上安装了 32 位驱动程序 它们是由一些 DBA 安装和配置的 我编写了一个简单的脚本来测试驱动程序 大致如下 using DataTable table new DataTable using OracleConnection c
  • 我收到此错误“无模块:ngResource”

    尝试使用 Angular resource 但它返回的不是一种方法 浏览稀疏的文档 我发现了这一点 angular module productServices ngResource 您应该将其包含在您的应用程序模块中 公平地说 我把它放进
  • 如何根据定时器改变div的内容

    jquery 有没有办法根据计时器更改 div 的内容 假设我有提供 提示 的模块 提示内容应每 5 秒更改一次 Thanks 制定一系列提示 然后做一个interval5秒改变div的内容 我假设您想要随机提示 请参阅 jsFiddle
  • SVG 内的链接图像

    想象一下以下 SVG
  • Android NDK - NativeActivity 与 JNI 库

    两年前 我开发了一个增强现实框架android 7 闪电泡芙 http developer android com about versions android 2 1 html 由于 AR 应用程序是计算密集型任务 因此我开发了一个 JN
  • 我应该使用类还是字典?

    我有一个只包含字段而不包含方法的类 如下所示 class Request object def init self environ self environ environ self request method environ get R
  • 如何创建通用存储库?

    我想知道是否有人有关于制作通用存储库的任何好的教程 或者甚至可能是已经制作好的并且有详细记录的库 我当前正在使用 linq to sql 但它可能会发生变化 所以我不知道您是否可以创建一个通用存储库 如果我说切换到实体框架 则几乎不需要任何
  • 以编程方式展开/折叠 CoordinatorLayout 中的底部导航视图

    我有一个CoordinatorLayout其中包含一个BottomNavigationView and an AppBarLayout with a ToolBar在它里面 这BottomNavigationView不在里面AppBarLa
  • 部署不渲染 Kendo UI

    VS2012 asp net MVC4 c 带有 KendoUI 实现的互联网应用程序 最简单的说法是我的网站看起来像这样 开发机器上的本地 像这样部署 我检查了服务器 Kendo UI 论坛 所有论坛都指向图像丢失 我检查了甚至复制了我的
  • 授予 EC2 实例对 S3 存储桶的访问权限

    我想授予我的 ec2 实例对 s3 存储桶的访问权限 在此 ec2 实例上 启动了一个包含我的应用程序的容器 现在我没有获得 s3 存储桶的许可 这是我的存储桶政策 Version 2012 10 17 Id Policy146280822
  • 如何使用iPhone SDK下载文本文件?

    我是开发基于视图的 iPhone 应用程序的新手 我需要下载 这个 txt 文件来自互联网 并将其保存到应用程序的文档文件夹中 谁能简单地告诉我如何做到这一点 txt 文件很小 所以我不会 需要任何用户界面对象 Thanks Kevin N
  • 如何使用CSS仅在移动设备上显示文本?

    我有一个文本 在 div 中 显示在桌面和移动屏幕上 Expected 我希望文本仅显示在 media only screen and max width 768px How to 隐藏 div 与display none or 还有其他解
  • Django-rest-framework 多个 url 参数

    如何将 示例对象 映射到 url website com api