Django Rest 显示 TemplateDoesNotExist

Pro*_*ova 3 python django django-rest-framework

我正在尝试在现有的博客项目上学习 Django Rest。我的项目有一个名为“BlogPost”的模型。我在那里创建了一个端点来获取 blogpost 对象。我可以从 django admin 成功创建博客,但是每当我给出 url“ http://127.0.0.1:8000/api/postings/1/ ”时,它都会显示错误"TemplateDoesNotExist at /api/postings/1/",而我的终端中没有任何错误。表明"GET /api/postings/1/ HTTP/1.1" 500 85630。谁能帮助我我哪里做错了?

from django.conf import settings
from django.db import models
from django.urls import reverse

class BlogPost(models.Model):
    # pk aka id --> numbers
    user        = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) 
    title       = models.CharField(max_length=120, null=True, blank=True)
    content     = models.TextField(max_length=120, null=True, blank=True)
    timestamp   = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return str(self.user.username)
Run Code Online (Sandbox Code Playgroud)

视图.py:

from rest_framework import generics
from postapp.models import BlogPost
from .serializers import BlogPostSerializer

class BlogPostRudView(generics.RetrieveUpdateDestroyAPIView):
    lookup_field = 'pk'
    serializer_class = BlogPostSerializer

    def get_queryset(self):
        return BlogPost.objects.all()
Run Code Online (Sandbox Code Playgroud)

这是序列化器:

from rest_framework import serializers   
from postapp.models import BlogPost

class BlogPostSerializer(serializers.ModelSerializer):
    class Meta:
        model = BlogPost
        fields = [
            'pk',
            'user',
            'title',
            'content',
            'timestamp',
        ]
Run Code Online (Sandbox Code Playgroud)

我的 urls.py 在 api 中

from .views import BlogPostRudView

from django.urls import path

urlpatterns = [
    path('<int:pk>/', BlogPostRudView.as_view(), name='post-rud')

]
Run Code Online (Sandbox Code Playgroud)

和我的项目中的 urls.py :

from django.contrib import admin
from django.urls import path, include

app_name = "testproject"

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/postings/',include('postapp.api.urls')),

]
Run Code Online (Sandbox Code Playgroud)

小智 5

确保添加rest_frameworkINSTALLED_APPS您的项目中settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    ................
Run Code Online (Sandbox Code Playgroud)

migrations添加后可能还需要运行。

关于你的代码的一切看起来都很好