Я пытаюсь научиться django отдыхать на существующем блог-проекте. У моего проекта есть модель с именем "BlogPost". Там я создал конечную точку для получения объекта blogpost. Я могу создать блог успешно от администратора django, но всякий раз, когда я даю 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)
views.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()
Вот сериализатор:
from rest_framework import serializers
from postapp.models import BlogPost
class BlogPostSerializer(serializers.ModelSerializer):
class Meta:
model = BlogPost
fields = [
'pk',
'user',
'title',
'content',
'timestamp',
]
Мои urls.py внутри API
from .views import BlogPostRudView
from django.urls import path
urlpatterns = [
path('<int:pk>/', BlogPostRudView.as_view(), name='post-rud')
]
и мой 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')),
]