템플릿이 존재하지 않음 - Django 오류
장고휴게프레임워크를사용하고있는데계속오류가발생합니다.
Exception Type: TemplateDoesNotExist
Exception Value: rest_framework/api.html
제가 어떻게 잘못되고 있는지 모르겠습니다.REST Framework를 처음 시도해 봅니다.코드입니다.
views.py
import socket, json
from modules.data.models import *
from modules.utils import *
from rest_framework import status
from rest_framework.decorators import api_view
from rest_framework.response import Response
from modules.actions.serializers import ActionSerializer
@api_view(['POST'])
@check_field_exists_wrapper("installation")
def api_actions(request, format = None):
action_type = request.POST['action_type']
if action_type == "Shutdown" :
send_message = '1'
print "Shutting Down the system..."
elif action_type == "Enable" :
send_message = '1'
print "Enabling the system..."
elif action_type == "Disable" :
send_message = '1'
print "Disabling the system..."
elif action_type == "Restart" :
send_message = '1'
print "Restarting the system..."
if action_type in ["Shutdown", "Enable", "Disable"] : PORT = 6000
else : PORT = 6100
controllers_list = Controller.objects.filter(installation_id = kwargs['installation_id'])
for controller_obj in controllers_list:
ip = controller_obj.ip
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((ip, PORT))
s.send(send_message)
s.close()
except Exception as e:
print("Exception when sending " + action_type +" command: "+str(e))
return Response(status = status.HTTP_200_OK)
models.py
class Controller(models.Model):
id = models.IntegerField(primary_key = True)
name = models.CharField(max_length = 255, unique = True)
ip = models.CharField(max_length = 255, unique = True)
installation_id = models.ForeignKey('Installation')
serializers.py
장고에서formes rest_framework에서 위젯 가져오기 modules.data.models 가져오기 *
class ActionSerializer(serializers.ModelSerializer):
class Meta:
model = Controller
fields = ('id', 'name', 'ip', 'installation_id')
urls.py
from django.conf.urls import patterns, url
from rest_framework.urlpatterns import format_suffix_patterns
urlpatterns = patterns('modules.actions.views',
url(r'^$','api_actions',name='api_actions'),
)
당신이 가지고 있는지 확인하세요.rest_framework
당신의 목록에 있는settings.py
INSTALLED_APPS
.
DRF는 요청한 형식과 동일한 형식으로 데이터를 반환하려고 시도합니다.당신의 브라우저에서, 이것은 아마도 HTML일 것입니다. 대안적인 응답을 지정하려면,?format=
매개 변수.예를 들어,?format=json
.
그TemplateDoesNotExist
오류는 브라우저에서 API 엔드포인트를 방문할 때 가장 흔히 발생합니다.rest_framework
다른 응답자가 설명한 대로 설치된 앱 목록에 포함됩니다.
앱 목록에 DRF가 포함되어 있지 않지만 HTML Admin DRF 페이지를 사용하지 않으려면 다른 형식을 사용하여 이 오류 메시지를 '사이드 스텝'해 보십시오.
문서에 대한 자세한 내용은 http://www.django-rest-framework.org/topics/browsable-api/ #을 참조하십시오.
나를 위해.rest_framework/api.html
설치가 손상되었거나 알 수 없는 다른 이유로 인해 파일 시스템에서 실제로 누락되었습니다.재설치djangorestframework
문제 해결:
$ pip install --upgrade djangorestframework
당신의 경우가 아니라, 가능한 이유도 맞춤형입니다.loaders
위해서Django
. 예를 들어, 다음과 같이 설정이 있는 경우Django 1.8
):
TEMPLATES = [
{
...
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages'
],
'loaders': [
'django.template.loaders.filesystem.Loader',
],
...
}
}]
Django는 템플릿이 있는 응용 프로그램 폴더를 보려고 하지 않습니다. 왜냐하면 당신은 명시적으로 추가해야 하기 때문입니다.django.template.loaders.app_directories.Loader
안으로loaders
그것을 위하여.
기본적으로 다음과 같은 사항이 있습니다.django.template.loaders.app_directories.Loader
에 포함된loaders
.
같은 오류 메시지를 우연히 발견했습니다.저 같은 경우는 백엔드를 진자2로 설정한 것 때문이었습니다.내 설정 파일에서:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.jinja2.Jinja2',
...
이를 다시 기본값으로 변경하면 문제가 해결됩니다.
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
...
rest_framework로 jinja2 백엔드를 사용할 수 있는 방법이 있는지 아직 잘 모르겠습니다.
설치된 앱에서 'rest_framework'를 추가하지 못해도 오류가 발생할 수 있습니다.따라서 오류가 발생했다면 그것도 확인해주시기 바랍니다.
언급URL : https://stackoverflow.com/questions/21408344/templatedoesnotexist-django-error
'programing' 카테고리의 다른 글
MySQL의 VARCHAR vs TEXT (0) | 2023.10.20 |
---|---|
다른 프로그램을 실행하기 위해 C 프로그램을 어떻게 작성합니까? (0) | 2023.10.20 |
커서 잡기(드래그 & 드롭)를 위한 CSS (0) | 2023.10.20 |
바인딩되지 않은 메서드 f ()은(대신 classobj 인스턴스를 받았음) fibo_instance를 첫 번째 인수로 호출해야 합니다. (0) | 2023.10.20 |
MariaDB: 저장 프로시저 잠금 행에서 SELECT (0) | 2023.10.20 |