【问题标题】:How to make a reverse in DefaultRouter()如何在 DefaultRouter() 中进行反向操作
【发布时间】:2019-05-31 13:57:03
【问题描述】:

我正在设置一个新的测试,我想进行反向测试。

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

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

用户配置文件视图集

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' 不是有效的视图函数或模式名称。

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

【问题讨论】:

  • 可以加UserProfileViewSet查看吗?/

标签: django django-rest-framework


【解决方案1】:

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

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

没有{base_name}-create的URL,如果你想使用创建端点,使用{base_name}-list

欲了解更多信息,refer to this table

【讨论】:

  • 谢谢我在 urls.py 中使用了 app_name 这就是为什么第一次配置文件列表对我不起作用
猜你喜欢
  • 2013-01-08
  • 2013-07-15
  • 2019-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-17
  • 2017-03-18
  • 1970-01-01
相关资源
最近更新 更多