我想制作一个以json格式显示模型内容的页面。 现在我有个错误, 模板不在/app/api/get处列出 rest_框架/api.html文件. 模型.py是
from django.db import models
# Create your models here.
class Color(models.Model):
name = models.CharField(max_length=255)
background_color = models.CharField(max_length=255)
h1_color = models.CharField(max_length=255)
p_color = models.CharField(max_length=255)
def __str__(self):
return self.name
在序列化程序.py是
^{pr2}$在网址.py是
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'api/get',views.TaskGet.as_view(),name='task-get')
]
在视图.py是
from django.shortcuts import render
from .models import Color
from .forms import ColorForm
from .serializers import TaskSerializer
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
# Create your views here.
def index(request):
d = {
'colors': Color.objects.all(),
'form': ColorForm(),
}
return render(request, 'index.html', d)
class TaskGet(APIView):
def get(self, request, format=None):
obj = Color.objects.all()
serializers = TaskSerializer(obj, many=True)
return Response(serializers.data, status.HTTP_200_OK)
我没有写信api.html文件任何地方。还有我没有注册弗雷斯特的目录_框架。所以,我真的不明白为什么这个错误发生了。怎么了我能修好这个吗?在
回溯是
Traceback:
File "/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
41. response = get_response(request)
File "/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
217. response = self.process_exception_by_middleware(e, request)
File "/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
215. response = response.render()
File "/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/django/template/response.py" in render
107. self.content = self.rendered_content
File "/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/rest_framework/response.py" in rendered_content
72. ret = renderer.render(self.data, accepted_media_type, context)
File "/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/rest_framework/renderers.py" in render
705. template = loader.get_template(self.template)
File "/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/django/template/loader.py" in get_template
25. raise TemplateDoesNotExist(template_name, chain=chain)
Exception Type: TemplateDoesNotExist at /app/api/get/
Exception Value: rest_framework/api.html
确保
rest_framework
列在settings.py
中的INSTALLED_APPS
列表中:首先,更改您的
^{pr2}$task-get
url模式regex,如下所示:由于您想要显示所有的} 可能是一个更好的方法:
Color
,使用来自DRF标准库的^{如您所见,不需要实现}。DRF关心其他人。在
get
方法,因为这是一个标准的GET
请求,您只需指定将序列化此集合的queryset
和{此方法将列出数据库中所有的
Color
条目,并以JSON格式序列化。在相关问题 更多 >
编程相关推荐