gpt4 book ai didi

python - Django REST - 无法访问我的 API 的编辑页面

转载 作者:行者123 更新时间:2023-12-01 01:20:21 25 4
gpt4 key购买 nike

所以我有一个代码列出了 API 中我的所有帖子,它正在做它应该做的事情。但是,编辑每个帖子的详细信息的代码不起作用。我想做的是,如果我访问我想要编辑的帖子的网址,我应该能够做到。但由于某种原因我不能。我认为我做的是正确的事。

我试图通过网址通过帖子的 id 访问帖子。但它只列出了我的所有帖子,而不是具有匹配 post_id 或主键的帖子。

我的代码在下面。

View .py

# To retrieve and list all posts
class ListPosts(generics.ListCreateAPIView):
queryset = Posts.objects.all()
serializer_class = PostsSerializer

# To view the details of the listed posts
class DetailPosts(generics.RetrieveUpdateDestroyAPIView):
queryset = Posts.objects.all()
serializer_class = PostsSerializer

url.py

from django.conf.urls import url, include
from . import views

urlpatterns = [
url(r'^', views.ListPosts.as_view(), name="list_posts"),
url(r'^(?P<post_id>\d+)/$',views.DetailPosts.as_view(), name="detail_posts"),
]

最佳答案

对于 DetailPosts View ,您必须指定一个 lookup_field,其名称与 urls.py 中配置的命名参数相同。确保该字段是唯一定义它的 Posts 字段

class DetailPosts(generics.RetrieveUpdateDestroyAPIView):
lookup_field = 'post_id'
queryset = Posts.objects.all()
serializer_class = PostsSerializer

使用 View 集和路由器

我还检测到您的 View 和网址可以通过 django Rest Frameworkwok 工具(如 viewsets )进行封装。和 routers因为您的 View 定义了 Posts

的基本 CRUD

View .py

from rest_framework import viewsets

class PostsViewSet(viewsets.ModelViewSet):
queryset = Posts.objects.all()
serializer_class = PostsSerializer

路由器.py

from rest_framework import routers

from .views import PostsViewSet

router = routers.SimpleRouter()
router.register(r'posts', PostsViewSet)
urlpatterns = router.urls

关于python - Django REST - 无法访问我的 API 的编辑页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53901328/

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