2016-07-14 13 views
8

、私はJSONオブジェクト(DATA1)とい​​くつかのテキスト/ HTML(フォーム)を返すようにしたいと思います。これは可能ですか?ジャンゴ:私のビュー機能でTemplateDoesNotExist(rest_framework/api.html)

MYコード

@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を呼び出すとき

TemplateDoesNotExist rest_framework/api.html

の下に表示されているように、私のようにチェックしたときに、私はエラーとステータスコード500を取得しますAPI、私は200 okの状態で応答を得る。これは私が事前

答えて

16

でのおかげで、あなたの設定のINSTALLED_APPS

'rest_framework'を追加する以外に
+0

既に存在します。私は@ api_viewが私にHTMLページをレンダリングすることを許可していないと信じています。他の解決策があります – Coeus

+0

あなたはdjangoシェルを開いてINSTALLED_APPSを見て確認します。私はそれが働いて、HTTP 415サポートされていないメディアタイプを返すので、api_viewはありそうもありません。 – Linovia

+0

この関数はCURLコマンドで動作し、ブラウザでhtmlをレンダリングしようとすると応答も出ますが、上記のエラーが表示されます – Coeus

0

rest_frameworkを持っていることを確認し、要求

に応じて、私のhtmlを取得する必要がありますどのように私のhtmlページ

を取得するイムができ示しINSTALLED_APPSの中にTEMPLATES.OPTIONSの中に次を追加してください:

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

古い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にそれを追加します。私のために働いた。

関連する問題