如何解决为什么 Django 反向 URL 返回 app_name?
我正在按如下方式配置我的 URL:
router = DefaultRouter()
router.register('personal',views.EventPersonalViewSet)
router.register('public',views.EventPublicViewSet)
app_name = 'event'
urlpatterns = [
path('',include(router.urls)),]
我希望像这样反转 URL:
EVENT_PERSONAL_URL = reverse('event:personal-list')
EVENT_PUBLIC_URL = reverse('event:public-list')
但是,我只能像这样反转一个 URL:
reverse('event:event-list')
运行 manage.py show_urls 返回以下配置:
/api/event/personal/ event.views.EventPersonalViewSet event:event-list
/api/event/personal./ event.views.EventPersonalViewSet event:event-list
/api/event/public/ event.views.EventPublicViewSet event:event-list
/api/event/public./ event.views.EventPublicViewSet event:event-list
为什么 reverse() 会引用 app_name 而不是指定的路径?
解决方法
我想是因为你没有在 router.register 中提到 basename。
你应该尝试像这样在 router.register 中添加 basename
router.register(prefix='personal',views.EventPersonalViewSet,basename='personal')
现在,您将能够通过使用反向网址 反向('事件:个人列表')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。