Django REST:支持URL中嵌套集合的推荐方法是什么,例如/ users/5/snippets /

win*_*ron 3 django django-rest-framework

Django REST Framework 演示应用程序公开了两个集合,/ users // snippets /.

在我的应用程序中,我希望能够嵌套这些集合,例如为用户5加载片段,我要求/ users/5/snippets /

这种配置在Django REST Framework中是否可行?我该如何设置呢?

Tor*_*ups 8

url(r'^/sessions/(?P<session_pk>\d+)/speakers/$', views.SpeakerBySessionList.as_view()),

class SpeakerBySessionList(generics.ListCreateAPIView):
    model = Speaker
    serializer_class = serializers.SpeakerSerializer

    def get_queryset(self):
        session_pk = self.kwargs.get('session_pk', None)
        if session_pk is not None:
            return Speaker.objects.filter(session__pk=session_pk)
        return []

class Session(models.Model):
    name = models.CharField(max_length=150)

class Speaker(models.Model):
    name = models.CharField(max_length=100)
    session = models.ForeignKey(Session, related_name='speakers')
Run Code Online (Sandbox Code Playgroud)

如果你想看一个更复杂的django/ember例子,一定要检查我的github项目

https://github.com/toranb/complex-ember-data-example