【发布时间】:2019-05-27 17:04:48
【问题描述】:
Django 2.1、python 3.6、djangorestframework。
当我转到以下 url 时,我可以看到我的数据(太棒了!)http://127.0.0.1:8000/api/cards/1 这是我在 api 页面上看到的 -
HTTP 200 OK
Allow: GET, PUT, PATCH, DELETE, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
[
{
"id": "1",
"card_title": "Hello"
},
]
我希望能够访问此网址以获取相同的数据 - http://127.0.0.1:8000/api/cards/title/Hello
如何更新我的视图和网址来做到这一点?
基本网址
urlpatterns = [
...
path('api/cards/', include('cards.api.urls')),
]
cards.api.urls.py
urlpatterns = [
path('', CardListView.as_view()),
path('<str:pk>/', CardDetailView.as_view()),
]
urlpatterns = format_suffix_patterns(urlpatterns)
cards.api.views.py
class CardList(generics.ListCreateAPIView):
permission_classes = ()
queryset = Card.objects.all()
serializer_class = CardSerializer
class CardDetail(generics.RetrieveUpdateDestroyAPIView):
#permisssion_classes = (UserPermission,) # set the permission class
permission_classes = ()
queryset = Card.objects.all()
serializer_class = CardSerializer
我尝试将其添加到 cards.api.urls.py path('api/cards/title/<str:pk>/', CardDetail.as_view()), ,但它仍在查看 id 变量而不是 card_title 变量。
【问题讨论】:
-
你能不能再试一次,把
path改成url,比如url('api/cards/title/<str:pk>/'。从from django.conf.urls import url导入这个? -
@Micah " 它仍然在查看 id 变量而不是 card_title 变量" 你的意思是什么?你说过
/api/cards/title/1api 是新的..对吗? -
我犯了一个错误,问错了问题。我想打
api/cards/title/hello而不是api//cards/title/1
标签: django-rest-framework django-urls django-2.0