繁体   English   中英

从Django View类中的URL访问主键

[英]Accessing Primary Key from URL in Django View Class

我有一个URL模式映射到我的Django App中的自定义视图类,如下所示:

url( r'^run/(?P<pk>\d+)/$', views.PerfRunView.as_view( ))

问题是,我无法弄清楚如何从视图类中的URL模式字符串访问'pk',以便我可以根据其数据库ID检索特定的模型对象。 我用Google搜索,查看了Django文档,搜索了Stack Overflow,我找不到满意的答案。

有人能告诉我吗?

在基于类的视图中,URL中的所有元素都放在self.args (如果它们是非命名组)或self.kwargs (用于命名组)中。 因此,对于您的视图,您可以使用self.kwargs['pk']

访问视图post =中的主键

Class_name.objects.get(pk=self.kwargs.get('pk'))

这是一个基于django restframework的示例,用于在url中使用pk检索对象:

views.py

class ContactListView(generics.ListAPIView):
    queryset = Profile.objects.all()
    serializer_class = UserContactListSerializer

    def get(self, request, pk, *args, **kwargs):
        contacts = Profile.objects.get(pk=pk)
        serializer = UserContactListSerializer(contacts)
        return Response(serializer.data)

urls.py

    url(r'^contact_list/(?P<pk>\d+)/$', ContactListView.as_view())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM