django drf login template

喜夏-厌秋 提交于 2020-01-25 08:12:08

问题


I extend the login template of DRF

{% extends "rest_framework/login_base.html" %}
{% block branding %}
  <h3 style="margin: 0 0 20px;">My site</h3>
{% endblock %}

with urls.py:

urlpatterns = [
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
    url(r'^login', login, template_name, name='login'),
    url(r'^logout', logout, template_name, name='logout'),
...

Everything works well except if the connection fails: DRF redirect to http://127.0.0.1:8000/api-auth/login/ instead of http://127.0.0.1:8000/login/ and my extended template is not used. So I lose my site name for "Django REST framework" title.

Regards


回答1:


Put the template in templates/rest_framework/ and

urlpatterns = [
    url(r'^auth/', include('rest_framework.urls', namespace='rest_framework')),



回答2:


If you extended it on project/templates/rest_framework/login.html:

{% extends "rest_framework/login_base.html" %}
{% block branding %}
   <h3 style="margin: 0 0 20px;">My site</h3>
{% endblock %}

The name of your project's login form which is 'my site', shouldn't change.

For the unified resource locator you can try this:

    url(r'^', include('rest_framework.urls', namespace='rest_framework')),

So that upon redirection the url will be like in the below sample:

http://localhost:8000/login/
http://127.0.0.1:8000/login/


来源:https://stackoverflow.com/questions/43741749/django-drf-login-template

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!