gpt4 book ai didi

django - 如何反向使用DefaultRouter()的URL?

转载 作者:行者123 更新时间:2023-12-03 13:31:47 25 4
gpt4 key购买 nike

我正在尝试在测试中使用reverse()。我尝试了this answer!但它不起作用。
我仍然收到错误
django.urls.exceptions.NoReverseMatch: Reverse for 'patients-list' with no arguments not found

router = DefaultRouter()
router.register(r'patients', views.PatientSet, base_name='patients')

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

这是 ModelViewSet
class PatientSet(viewsets.ModelViewSet):
queryset = Patient.objects.all()
serializer_class = PatientSerializer
permission_classes = [IsDoctorUser]
filter_backends = (filters.DjangoFilterBackend,)
filter_fields = ['is_active']

我在测试 url = reverse('patients-list')中使用这种方式

最佳答案

首先,不赞成使用路由器的base_name kwarg,而推荐使用DRF 3.11中的basename kwarg,但这不是造成问题的原因。使用您提供的代码示例,我实际上也看不到任何错误。

我建议您尝试安装django-extensions软件包。安装并配置django-extensions后,可以使用python manage.py show_urls命令输出所有路由的列表。

python manage.py show_urls


/api/accounts/users/ accounts.views.UserViewSet account:user-list
/api/accounts/users/<uuid>/ accounts.views.UserViewSet account:user-detail

每行包含url /api/accounts/users/<uuid>/, View 的路径 accounts.views.UserViewSet和路线 account:user-detail的名称(这是您想要的反向名称)。希望以此为您找到正确的路线名称。 URL部分还指示该路由所需的任何参数。

关于django - 如何反向使用DefaultRouter()的URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56050182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com