如何在DefaultRouter()中进行反转

时间:2019-01-05 02:05:39

标签: django django-rest-framework

我正在设置一个新测试,我想做个相反的事情。

router = DefaultRouter()
router.register('profile', views.UserProfileViewSet, base_name='profile')

urlpatterns = [
   url(r'', include(router.urls))
]

UserProfileViewSet

class UserProfileViewSet(viewsets.ModelViewSet):
   """Handles creating, creating and updating profiles."""

   serializer_class = serializers.UserProfileSerializer
   permission_classes = (permissions.UpdateOwnProfile,)
   authentication_classes = (TokenAuthentication,)

   queryset = get_user_model().objects.all()

所以,我想在tests.py中做个相反的事情。我的镜头是:

CREAT_USER_URL = reverse('profile-create')

我得到:

  

未找到与“ profile-create”相对的内容。 “ profile-create”不是有效的视图函数或模式名称。

在这种情况下,我应该如何设置反向设置。

1 个答案:

答案 0 :(得分:2)

您应该使用 profile-list 而不是profile-create

CREAT_USER_URL = reverse('profile-<b>list</b>')

没有URL为{base_name}-create,如果要使用创建端点,请使用{base_name}-list

有关更多信息,请refer to this table