retrievemodelmixin - Django: TemplateDoesNotExist(rest_framework/api.html)
django rest framework viewset get_queryset (4)
En mi función de vista, me gustaría devolver un objeto json (data1) y algo de texto / html (formulario). es posible?
Mi código
@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'')
Cuando llamo a la url, obtengo el código de estado 500 con error como se muestra a continuación
TemplateDoesNotExist rest_framework / api.html
cuando verifico como API, recibo respuesta con 200 ok status. Esto muestra que no puedo obtener mi página html
¿Cómo debo obtener mi html dependiendo de la solicitud
Gracias por adelantado
Aparte de agregar ''rest_framework''
dentro de INSTALLED_APPS
, intente agregar lo siguiente dentro de sus TEMPLATES.OPTIONS
:
''loaders'': [
''django.template.loaders.filesystem.Loader'',
''django.template.loaders.app_directories.Loader''
],
Asegúrate de tener rest_framework
en las INSTALLED_APPS
tu configuración
Asegúrese de instalar pip install djangorestframework
e incluya rest_framework en la configuración.py
INSTALLED_APPS = [
''rest_framework'',
]
Me topé con este problema al actualizar de una versión antigua de Django a Django 2.0. Mi settings.py
no tenía una directiva de TEMPLATE
en absoluto, así que enganché lo siguiente de un nuevo django-admin.py startproject ...
ejecute:
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'',
],
},
},
]
Agregue eso a su settings.py
si no tiene la directiva TEMPLATES
en su settings.py
. Trabajó para mi.