如何将参数传递给HyperLinkedIdentityField的view_name

时间:2017-02-20 16:18:23

标签: django django-rest-framework

我正在使用django rest框架并创建了一个序列化器类

class ForumTopicListSerializer(ModelSerializer):
    threadUrl = HyperlinkedIdentityField(
            view_name = 'forum-api:thread_list_forum_topic'
        )
    class Meta:
        model = ForumTopic
        fields =[
        'id',
        'title',
        'threadUrl'
       ]

我有一个HyperLinkedIDentityField,视图中有forum-api:thread_list_forum_topic,但问题是这个视图需要传递一个参数。

其网址为

url(r'thread/topic/(?P<forumTopic>[0-9]+)/$',  ThreadListForumTopicAPIView.as_view(), name = 'thread_list_forum_topic'),

那么我如何传递forumTopic的参数是HyperLinkedIdentityField?

1 个答案:

答案 0 :(得分:0)

您想在哪里获取您的网址?在views.pyserializers.py?如果你在views.py这里是一个片段:

from rest_framework import generics
class ThreadListForumTopicAPIView(generics.ListAPIView):
  serializer_class = serializers.ForumTopicListSerializer

  def get_queryset(self):
    forumTopic = self.kwargs["forumTopic"]

URL参数在视图类的self.kwargs中设置。上面的代码只是代码段,您显然必须完成它才能返回查询集。

以下是支持文档:

http://www.django-rest-framework.org/api-guide/filtering/#filtering-against-the-url