viewset retrievemodelmixin mixin get_queryset framework example auth apiview django django-views django-rest-framework

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.