2016-07-14 13 views
8

मेरे दृश्य फ़ंक्शन में, मैं एक जेसन ऑब्जेक्ट (डेटा 1) और कुछ टेक्स्ट/एचटीएमएल (फॉर्म) वापस करना चाहता हूं। क्या यह संभव है?Django: TemplateDoesNotExist (rest_framework/api.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') 

जब मैं यूआरएल फोन मैं स्थिति कोड 500 त्रुटि के साथ के रूप में नीचे

TemplateDoesNotExist rest_framework/api.html

दिखाया गया है जब मैं के रूप में देखने के मिल एक एपीआई, मुझे 200 ठीक स्थिति के साथ प्रतिक्रिया मिलती है। यह इम मेरी html पृष्ठ पाने के लिए

मैं कैसे अनुरोध के आधार पर

अग्रिम धन्यवाद

उत्तर

16

सुनिश्चित करें कि आप में rest_framework किया है मेरी एचटीएमएल मिलना चाहिए असमर्थ चलता अपनी सेटिंग्स के INSTALLED_APPS

+0

यह पहले से मौजूद है। मेरा मानना ​​है कि @api_view मुझे एचटीएमएल पेज प्रस्तुत करने की इजाजत नहीं दे रहा है..क्या कोई अन्य समाधान – Coeus

+0

है, आप django खोल खोलकर और INSTALLED_APPS को देखकर इसे दोबारा जांचना चाहते हैं। यह असंभव रूप से api_view है क्योंकि मुझे यह काम मिल रहा है और यह एक HTTP 415 असमर्थित मीडिया प्रकार लौटाएगा। – Linovia

+0

यह फ़ंक्शन CURL कमांड के साथ काम करता है, मुझे प्रतिक्रिया भी मिलती है, जब मैं अपने ब्राउज़र के साथ एचटीएमएल प्रस्तुत करने का प्रयास करता हूं, तो मुझे उपरोक्त सूचीबद्ध त्रुटि मिलती है – Coeus

0

अन्य 'rest_framework' जोड़ने से अपने INSTALLED_APPS के अंदर, अपने TEMPLATES.OPTIONS:

'loaders': [ 
    'django.template.loaders.filesystem.Loader', 
    'django.template.loaders.app_directories.Loader' 
], 
के अंदर निम्नलिखित जोड़ने का प्रयास करें
1

पुराने डीजेगो संस्करण से Django 2.0 में अपग्रेड करते समय मैंने इस समस्या को मारा। मेरे settings.py बिल्कुल एक TEMPLATE निर्देश नहीं था, इसलिए मैं एक नया django-admin.py startproject ... रन से निम्नलिखित snagged:

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.py है कि जोड़े अगर आप अपने settings.py में TEMPLATES निर्देश नहीं है। मेरे लिए काम किया