【发布时间】:2015-10-09 05:44:21
【问题描述】:
我有以下两个 Django 模型(为本示例进行了简化)。
class Participant(models.Model):
name = models.CharField()
study_id = models.IntegerField()
...
# Lots of other fields
class Message(models.Model):
text = models.CharField()
participant = models.ForeignKey('Participant')
使用 Django Rest Framework,我为每个模型设置了 ModelSerializer 和 ModelViewSet。使用 @detail_route 和 @list_route 装饰器,我设置了以下 URL。
/api/participant/ (GET,POST for list and create)
/api/participant/:study_id (GET,PUT for retrieve and update)
/api/participant/:study_id/messages (GET for list POST to send message)
我想添加以下 url 来更改消息元数据。这将使restangular 中的 API 使用变得更加容易
/api/participant/:study_id/messages/:msg_id (PATCH partial update of message)
如果有办法在Participant 中嵌入Message ViewSet 会很好,因为这也会使消息的GET 和POST 逻辑更简单。这可能吗?如果不是,我如何将 msg_id 传递给消息上的 @detail_rouet?
【问题讨论】:
-
查看 DRF 嵌套路由器。 github.com/alanjds/drf-nested-routers
标签: python django django-rest-framework