首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >页面找不到drf嵌套路由器的erro

页面找不到drf嵌套路由器的erro
EN

Stack Overflow用户
提问于 2018-05-19 17:25:32
回答 1查看 194关注 0票数 0

我在用

代码语言:javascript
复制
Django: 2.0  
Djanfo REST Frameword: 3.8.2
drf-nested-routers: 0.90.2

我的contacts/views.py

代码语言:javascript
复制
class ContactViewSet(viewsets.ModelViewSet):
    serializer_class = ContactSerializer
    permission_classes = (IsAuthenticated,)

    def get_queryset(self):
        return Contact.objects.filter(user=self.request.user)

class ContactPhoneNumberViewSet(viewsets.ModelViewSet):
    serializer_class = ContactPhoneNumberSerializer
    permission_classes = (IsAuthenticated,)

    def get_queryset(self):
        print(self.kwargs)
        phone_numbers = ContactPhoneNumber.objects.all()
        return phone_numbers

app/urls.py

代码语言:javascript
复制
from rest_framework_nested import routers

from contacts.views import ContactViewSet, ContactPhoneNumberViewSet

router = routers.SimpleRouter()
router.register(r'contacts', ContactViewSet, 'contacts')
contact_router = routers.NestedSimpleRouter(router, r'contacts', lookup='contact')
contact_router.register(r'phone_number', ContactPhoneNumberViewSet, base_name='contact-phone-numbers')

api_urlpatterns = [
    path('', include(router.urls)),
]

urlpatterns = [
    path('api/', include(api_urlpatterns)),
    url(r'^admin/', admin.site.urls),
]

使用这个设置,我可以访问

代码语言:javascript
复制
/api/contacts/           # <= list all contacts
/api/contacts/<pk>/      # <= contact detail

但是在试图进入

代码语言:javascript
复制
/api/contacts/<pk>/phone_number/           # <= list all phone numbers

Page Not Found 给错误。

我也尝试过传递<phone_number_pk>,但是仍然收到了Page not Found错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-19 19:20:26

代码语言:javascript
复制
api_urlpatterns = [
    path('', include(router.urls)),
    path('', include(contact_router.urls)),
]

您还需要分别注册嵌套的urls。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50427824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档