web-dev-qa-db-ja.com

Django:TemplateDoesNotExist(rest_framework / api.html)

私のビュー関数では、jsonオブジェクト(data1)といくつかのtext/html(フォーム)を返します。これは可能ですか?

私のコード

@api_view(['POST'])
@permission_classes((AllowAny,))
def create_user(request):
    if request.is_ajax():
        if request.method == 'POST':
            serializer = SignupSerializer(data=request.data)
            print 'ser'
            print serializer
            if not serializer.is_valid():
                return Response(serializer.errors,\
                                status=status.HTTP_400_BAD_REQUEST)
            else:
                serializer.save()
                data={'status': 'Created','message': 'Verification email has been sent to your email. Please verify your account.'}
                return Response(data, template_name='register.html')
    else:
        return HttpResponse('hello world')

URLを呼び出すと、次のようにエラーのあるステータスコード500が表示されます

TemplateDoesNotExist rest_framework/api.html

aPIとしてチェックすると、200のOKステータスで応答が返されます。これは、ImがHTMLページを取得できないことを示しています

リクエストに応じてどのようにHTMLを取得する必要がありますか

前もって感謝します

32
Coeus

rest_framework設定のINSTALLED_APPS

87
Linovia

古いDjango=バージョンからDjango= 2.0。私のsettings.pyにはTEMPLATEディレクティブがありません。すべて、したがって、私は新しいDjango-admin.py startproject ...実行から以下を捕捉しました:

TEMPLATES = [
    {
        'BACKEND': 'Django.template.backends.Django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        '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',
            ],
        },
    },
]

settings.pyTEMPLATESディレクティブがない場合は、settings.pyに追加してください。私のために働いた。

12
Ross Rogers

必ずpip install djangorestframeworkをインストールし、setting.pyにrest_frameworkを含めてください

INSTALLED_APPS = [
    'rest_framework',
]
8
sarath kumar

'rest_framework'内にINSTALLED_APPSを追加する以外に、TEMPLATES.OPTIONS内に次を追加してみてください。

'loaders': [
     'Django.template.loaders.filesystem.Loader',
     'Django.template.loaders.app_directories.Loader'
],
1
Juwaini

私は同じ問題に遭遇しました、空の応答を送信していました。 _create_user_関数のResponse()に別の情報を入れて、機能するかどうかを確認してください

0