![](/img/trans.png)
[英]Django REST Framework add a ViewSet as detail on another ViewSet
[英]Django Rest Framework: Embed Viewset Inside Viewset
我有以下兩個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框架我已成立了一個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)
我想添加以下網址以更改消息元數據。 這將使在restangular
使用API更加容易
/api/participant/:study_id/messages/:msg_id (PATCH partial update of message)
最好有一種方法將Message
ViewSet嵌入到Participant
因為這也將使消息上的GET和POST邏輯也更簡單。 這可能嗎? 如果沒有,如何將msg_id傳遞給郵件的@detail_rouet?
這是嵌套路由器的情況。 除了已經提到的那個,我將命名為https://github.com/chibisov/drf-extensions
就個人而言,我將Restangular與drf擴展一起使用。 帶有緩存支持。
關於如何啟用嵌套路由的兩個提示:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.