【发布时间】: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/1的base64编码。
我知道我可以将模型本身的键更改为 CharField 并在数据库级别强制执行该格式。然而,这有其自身的一系列性能问题和其他警告。
【问题讨论】:
标签: django python-3.x django-rest-framework