【问题标题】:Django REST Framework - Change ID FormatDjango REST Framework - 更改 ID 格式
【发布时间】:2020-05-22 13:30:08
【问题描述】:

我目前正在使用 Django + Django REST Framework 来构建 API 层。我很好奇的一个问题是是否可以更改 id 布局。目前我的模型看起来像这样:

class Thing(models.Model):
    name = models.CharField(max_length=100)

class ThingContainer(models.Model):
    name = models.CharField(max_length=100)
    things = models.ManyToManyField(Thing)

这意味着 DRF(使用 ModelViewSet 和 ModelSerializer)会自动生成 API 端点,例如 /things/1/thing_containers/2

我想知道是否有一个巧妙的技巧来更改面向外的 ID 的格式。所以不是/things/1,而是/things/YXBwOi8vdGhpbmcvMQ==,这是app://things/1base64编码。

我知道我可以将模型本身的键更改为 CharField 并在数据库级别强制执行该格式。然而,这有其自身的一系列性能问题和其他警告。

【问题讨论】:

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


    【解决方案1】:

    您应该在视图集中覆盖方法 retrieve。并在 urlpatterns 中修复 url

    【讨论】:

      猜你喜欢
      • 2013-10-24
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 2021-04-23
      • 2021-01-12
      • 1970-01-01
      • 2017-06-22
      相关资源
      最近更新 更多