whi*_*ear 3 python django django-rest-framework
我有一些 django-rest-framework 的 api,我的路由如下所示。
设置/api/genres在/api
from rest_framework import routers
from django.conf.urls import url
from django.conf.urls import include
router = routers.DefaultRouter()
router.register(r'genres', GenreViewSet)
urlpatterns = [
url(r'^api/',include(router.urls), name='api'),
path('', views.index, name='index'),
Run Code Online (Sandbox Code Playgroud)
现在我想在模板中使用这个url,所以我尝试了两种模式,但都显示错误。
我应该如何建立api的链接?
<a href="{% url 'api' %}">api</a>
Reverse for 'api' not found. 'api' is not a valid view function or pattern name.
<a href="{% url 'genres' %}">genre</a>
Reverse for 'genres' not found. 'genres' is not a valid view function or pattern name.
Run Code Online (Sandbox Code Playgroud)
Router 提供了basename用于反转 url 的参数。
router = routers.DefaultRouter()
router.register(r'genres', GenreViewSet, basename='genres')
urlpatterns = [
url(r'^api/',include(router.urls)),
path('', views.index, name='index'),
Run Code Online (Sandbox Code Playgroud)
请注意,DRF 的视图集有多个 url。因此,您需要通过添加特定后缀-list或来指定要使用哪一个-detail。第一个将为您提供视图集list()和create()操作的 url。第二个使用 forretrieve()和update()。
所以在模板中它会是这样的:
<a href="{% url 'genres-list' %}">api</a>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1061 次 |
| 最近记录: |