簡體   English   中英

Django Rest Framework:在Viewset中嵌入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框架我已成立了一個ModelSerializerModelViewSet每個模型。 使用@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM