nac*_*ode 3 django django-rest-framework
我正在尝试从 django-rest-framework 实现一个简单的视图集,除了创建视图之外,一切正常。ulr ( http://127.0.0.1:8000/api/create/ ) 已加载表单以输入数据,但当我点击 PUT 时,数据未加载到数据库中。终端显示以下错误: [19/Jun/2019 14:15:29] "GET /api/create/ HTTP/1.1" 404 10318 Not Found: /api/create/
我正在按照本教程学习集成 Django 和 React。我之前曾尝试单独实现 CRUD 视图,但遇到了循环引用错误。我想 url 定义一定有某种错误,但我就是不知道出了什么问题。
API url.py:
from articles.api.views import ArticleViewSet
from rest_framework.routers import DefaultRouter
router = DefaultRouter()
router.register(r'', ArticleViewSet, base_name='articles')
urlpatterns = router.urls
Run Code Online (Sandbox Code Playgroud)
API 视图.py:
from rest_framework import viewsets
from articles.models import Article
from .serializers import ArticleSerializer
class ArticleViewSet(viewsets.ModelViewSet):
serializer_class = ArticleSerializer
queryset = Article.objects.all()
Run Code Online (Sandbox Code Playgroud)
API序列化器:
from rest_framework import serializers
from articles.models import Article
class ArticleSerializer(serializers.ModelSerializer):
class Meta:
model = Article
fields = ('id', 'title', 'content')
Run Code Online (Sandbox Code Playgroud)
项目url.py:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('api-auth/', include('rest_framework.urls')),
path('api/', include('articles.api.urls')),
]
Run Code Online (Sandbox Code Playgroud)
使用此代码,当我访问列表视图时,下面会出现添加新记录的表单,如果我在其中输入数据,记录就会添加到数据库中。但是当我转到“api/create”并提交表单时,它没有加载到数据库中。更新和删除视图工作正常。
感谢您的帮助!
小智 5
如果您要创建一个对象,只需 POST 到 /api/ URL。不是/api/create/。这是因为您的 ArticleViewSet 包含 CreateAPIView。如果你像这样使用:
from rest_framework import generics
class ArticleViewSet(generics.CreateAPIView):
serializer_class = ArticleSerializer
queryset = Article.objects.all()
Run Code Online (Sandbox Code Playgroud)
如果您使用 CreateAPIView,则 urls.py 中的路由器将不起作用。你的教程解释了这一点。
您需要发送 POST 数据 /api/ URL 来创建对象。
视图集中的操作。
如果你想使用CreateAPIView(如上面的代码),你必须像这样更改urls.py。
urlpatterns = [
url("/api/create/", views.ArticleViewSet.as_view())
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12312 次 |
| 最近记录: |