mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-06-20 13:33:18 +03:00
Remove staticviews. Use standard login/logout
This commit is contained in:
parent
b074754b54
commit
66eabe8bd1
|
@ -335,7 +335,7 @@ class DocumentingTemplateRenderer(BaseRenderer):
|
||||||
context = RequestContext(self.view.request, {
|
context = RequestContext(self.view.request, {
|
||||||
'content': content,
|
'content': content,
|
||||||
'view': self.view,
|
'view': self.view,
|
||||||
'request': self.view.request, # TODO: remove
|
'request': self.view.request,
|
||||||
'response': self.view.response,
|
'response': self.view.response,
|
||||||
'description': description,
|
'description': description,
|
||||||
'name': name,
|
'name': name,
|
||||||
|
@ -344,8 +344,6 @@ class DocumentingTemplateRenderer(BaseRenderer):
|
||||||
'available_formats': self.view._rendered_formats,
|
'available_formats': self.view._rendered_formats,
|
||||||
'put_form': put_form_instance,
|
'put_form': put_form_instance,
|
||||||
'post_form': post_form_instance,
|
'post_form': post_form_instance,
|
||||||
'login_url': login_url,
|
|
||||||
'logout_url': logout_url,
|
|
||||||
'FORMAT_PARAM': self._FORMAT_QUERY_PARAM,
|
'FORMAT_PARAM': self._FORMAT_QUERY_PARAM,
|
||||||
'METHOD_PARAM': getattr(self.view, '_METHOD_PARAM', None),
|
'METHOD_PARAM': getattr(self.view, '_METHOD_PARAM', None),
|
||||||
})
|
})
|
||||||
|
|
|
@ -20,8 +20,15 @@
|
||||||
<h1 id="site-name">{% block branding %}<a href='http://django-rest-framework.org'>Django REST framework</a> <span class="version"> v {{ version }}</span>{% endblock %}</h1>
|
<h1 id="site-name">{% block branding %}<a href='http://django-rest-framework.org'>Django REST framework</a> <span class="version"> v {{ version }}</span>{% endblock %}</h1>
|
||||||
</div>
|
</div>
|
||||||
<div id="user-tools">
|
<div id="user-tools">
|
||||||
{% if user.is_active %}Welcome, {{ user }}.{% if logout_url %} <a href='{{ logout_url }}'>Log out</a>{% endif %}{% else %}Anonymous {% if login_url %}<a href='{{ login_url }}'>Log in</a>{% endif %}{% endif %}
|
{% block userlinks %}
|
||||||
{% block userlinks %}{% endblock %}
|
{% if user.is_active %}
|
||||||
|
Welcome, {{ user }}.
|
||||||
|
<a href='{% url djangorestframework:logout %}?next={{ request.path }}'>Log out</a>
|
||||||
|
{% else %}
|
||||||
|
Anonymous
|
||||||
|
<a href='{% url djangorestframework:login %}?next={{ request.path }}'>Log in</a>
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
||||||
</div>
|
</div>
|
||||||
{% block nav-global %}{% endblock %}
|
{% block nav-global %}{% endblock %}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
<div id="content" class="colM">
|
<div id="content" class="colM">
|
||||||
<div id="content-main">
|
<div id="content-main">
|
||||||
<form method="post" action="{% url djangorestframework.utils.staticviews.api_login %}" id="login-form">
|
<form method="post" action="{% url djangorestframework:login %}" id="login-form">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<label for="id_username">Username:</label> {{ form.username }}
|
<label for="id_username">Username:</label> {{ form.username }}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
from django.conf.urls.defaults import patterns, url, include
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
from djangorestframework.compat import RequestFactory
|
from djangorestframework.compat import RequestFactory
|
||||||
from djangorestframework.views import View
|
from djangorestframework.views import View
|
||||||
|
@ -13,9 +14,19 @@ SAFARI_5_0_USER_AGENT = 'Mozilla/5.0 (X11; U; Linux x86_64; en-ca) AppleWebKit/5
|
||||||
OPERA_11_0_MSIE_USER_AGENT = 'Mozilla/4.0 (compatible; MSIE 8.0; X11; Linux x86_64; pl) Opera 11.00'
|
OPERA_11_0_MSIE_USER_AGENT = 'Mozilla/4.0 (compatible; MSIE 8.0; X11; Linux x86_64; pl) Opera 11.00'
|
||||||
OPERA_11_0_OPERA_USER_AGENT = 'Opera/9.80 (X11; Linux x86_64; U; pl) Presto/2.7.62 Version/11.00'
|
OPERA_11_0_OPERA_USER_AGENT = 'Opera/9.80 (X11; Linux x86_64; U; pl) Presto/2.7.62 Version/11.00'
|
||||||
|
|
||||||
|
|
||||||
|
urlpatterns = patterns('',
|
||||||
|
url(r'^api', include('djangorestframework.urls', namespace='djangorestframework'))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class UserAgentMungingTest(TestCase):
|
class UserAgentMungingTest(TestCase):
|
||||||
"""We need to fake up the accept headers when we deal with MSIE. Blergh.
|
"""
|
||||||
http://www.gethifi.com/blog/browser-rest-http-accept-headers"""
|
We need to fake up the accept headers when we deal with MSIE. Blergh.
|
||||||
|
http://www.gethifi.com/blog/browser-rest-http-accept-headers
|
||||||
|
"""
|
||||||
|
|
||||||
|
urls = 'djangorestframework.tests.accept'
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ else:
|
||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
url(r'^$', oauth_required(ClientView.as_view())),
|
url(r'^$', oauth_required(ClientView.as_view())),
|
||||||
url(r'^oauth/', include('oauth_provider.urls')),
|
url(r'^oauth/', include('oauth_provider.urls')),
|
||||||
url(r'^accounts/login/$', 'djangorestframework.utils.staticviews.api_login'),
|
url(r'^restframework/', include('djangorestframework.urls', namespace='djangorestframework')),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from django.conf.urls.defaults import patterns, url
|
from django.conf.urls.defaults import patterns, url, include
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
|
|
||||||
from djangorestframework import status
|
from djangorestframework import status
|
||||||
|
@ -73,6 +73,7 @@ urlpatterns = patterns('',
|
||||||
url(r'^jsonp/nojsonrenderer$', MockGETView.as_view(renderers=[JSONPRenderer])),
|
url(r'^jsonp/nojsonrenderer$', MockGETView.as_view(renderers=[JSONPRenderer])),
|
||||||
url(r'^html$', HTMLView.as_view()),
|
url(r'^html$', HTMLView.as_view()),
|
||||||
url(r'^html1$', HTMLView1.as_view()),
|
url(r'^html1$', HTMLView1.as_view()),
|
||||||
|
url(r'^api', include('djangorestframework.urls', namespace='djangorestframework'))
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
from django.conf.urls.defaults import patterns, url
|
from django.core.urlresolvers import reverse
|
||||||
|
from django.conf.urls.defaults import patterns, url, include
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
from django.test import Client
|
from django.test import Client
|
||||||
|
@ -45,14 +46,13 @@ class MockResource(ModelResource):
|
||||||
model = MockResourceModel
|
model = MockResourceModel
|
||||||
fields = ('foo', 'bar', 'baz')
|
fields = ('foo', 'bar', 'baz')
|
||||||
|
|
||||||
urlpatterns = patterns('djangorestframework.utils.staticviews',
|
urlpatterns = patterns('',
|
||||||
url(r'^accounts/login$', 'api_login'),
|
|
||||||
url(r'^accounts/logout$', 'api_logout'),
|
|
||||||
url(r'^mock/$', MockView.as_view()),
|
url(r'^mock/$', MockView.as_view()),
|
||||||
url(r'^mock/final/$', MockViewFinal.as_view()),
|
url(r'^mock/final/$', MockViewFinal.as_view()),
|
||||||
url(r'^resourcemock/$', ResourceMockView.as_view()),
|
url(r'^resourcemock/$', ResourceMockView.as_view()),
|
||||||
url(r'^model/$', ListOrCreateModelView.as_view(resource=MockResource)),
|
url(r'^model/$', ListOrCreateModelView.as_view(resource=MockResource)),
|
||||||
url(r'^model/(?P<pk>[^/]+)/$', InstanceModelView.as_view(resource=MockResource)),
|
url(r'^model/(?P<pk>[^/]+)/$', InstanceModelView.as_view(resource=MockResource)),
|
||||||
|
url(r'^restframework/', include('djangorestframework.urls', namespace='djangorestframework')),
|
||||||
)
|
)
|
||||||
|
|
||||||
class BaseViewTests(TestCase):
|
class BaseViewTests(TestCase):
|
||||||
|
@ -123,13 +123,13 @@ class ExtraViewsTests(TestCase):
|
||||||
|
|
||||||
def test_login_view(self):
|
def test_login_view(self):
|
||||||
"""Ensure the login view exists"""
|
"""Ensure the login view exists"""
|
||||||
response = self.client.get('/accounts/login')
|
response = self.client.get(reverse('djangorestframework:login'))
|
||||||
self.assertEqual(response.status_code, 200)
|
self.assertEqual(response.status_code, 200)
|
||||||
self.assertEqual(response['Content-Type'].split(';')[0], 'text/html')
|
self.assertEqual(response['Content-Type'].split(';')[0], 'text/html')
|
||||||
|
|
||||||
def test_logout_view(self):
|
def test_logout_view(self):
|
||||||
"""Ensure the logout view exists"""
|
"""Ensure the logout view exists"""
|
||||||
response = self.client.get('/accounts/logout')
|
response = self.client.get(reverse('djangorestframework:logout'))
|
||||||
self.assertEqual(response.status_code, 200)
|
self.assertEqual(response.status_code, 200)
|
||||||
self.assertEqual(response['Content-Type'].split(';')[0], 'text/html')
|
self.assertEqual(response['Content-Type'].split(';')[0], 'text/html')
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
from django.conf.urls.defaults import patterns
|
from django.conf.urls.defaults import patterns, url
|
||||||
|
|
||||||
urlpatterns = patterns('djangorestframework.utils.staticviews',
|
|
||||||
(r'^accounts/login/$', 'api_login'),
|
template_name = {'template_name': 'djangorestframework/login.html'}
|
||||||
(r'^accounts/logout/$', 'api_logout'),
|
|
||||||
|
urlpatterns = patterns('django.contrib.auth.views',
|
||||||
|
url(r'^login/$', 'login', template_name, name='login'),
|
||||||
|
url(r'^logout/$', 'logout', template_name, name='logout'),
|
||||||
)
|
)
|
||||||
|
|
|
@ -53,15 +53,16 @@ YAML support is optional, and requires `PyYAML`_.
|
||||||
Login / Logout
|
Login / Logout
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
Django REST framework includes login and logout views that are useful if
|
Django REST framework includes login and logout views that are needed if
|
||||||
you're using the self-documenting API::
|
you're using the self-documenting API.
|
||||||
|
|
||||||
from django.conf.urls.defaults import patterns
|
Make sure you include the following in your `urlconf`::
|
||||||
|
|
||||||
urlpatterns = patterns('djangorestframework.views',
|
from django.conf.urls.defaults import patterns, url
|
||||||
# Add your resources here
|
|
||||||
(r'^accounts/login/$', 'api_login'),
|
urlpatterns = patterns('',
|
||||||
(r'^accounts/logout/$', 'api_logout'),
|
...
|
||||||
|
url(r'^restframework', include('djangorestframework.urls', namespace='djangorestframework'))
|
||||||
)
|
)
|
||||||
|
|
||||||
.. _django.contrib.staticfiles: https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/
|
.. _django.contrib.staticfiles: https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/
|
||||||
|
|
|
@ -64,6 +64,12 @@ To add Django REST framework to a Django project:
|
||||||
|
|
||||||
* Ensure that the ``djangorestframework`` directory is on your ``PYTHONPATH``.
|
* Ensure that the ``djangorestframework`` directory is on your ``PYTHONPATH``.
|
||||||
* Add ``djangorestframework`` to your ``INSTALLED_APPS``.
|
* Add ``djangorestframework`` to your ``INSTALLED_APPS``.
|
||||||
|
* Add the following to your URLconf. (To include the REST framework Login/Logout views.)::
|
||||||
|
|
||||||
|
urlpatterns = patterns('',
|
||||||
|
...
|
||||||
|
url(r'^restframework', include('djangorestframework.urls', namespace='djangorestframework'))
|
||||||
|
)
|
||||||
|
|
||||||
For more information on settings take a look at the :ref:`setup` section.
|
For more information on settings take a look at the :ref:`setup` section.
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from django.conf.urls.defaults import patterns, include
|
from django.conf.urls.defaults import patterns, include, url
|
||||||
from sandbox.views import Sandbox
|
from sandbox.views import Sandbox
|
||||||
try:
|
try:
|
||||||
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
|
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
|
||||||
|
@ -15,8 +15,7 @@ urlpatterns = patterns('',
|
||||||
(r'^pygments/', include('pygments_api.urls')),
|
(r'^pygments/', include('pygments_api.urls')),
|
||||||
(r'^blog-post/', include('blogpost.urls')),
|
(r'^blog-post/', include('blogpost.urls')),
|
||||||
(r'^permissions-example/', include('permissionsexample.urls')),
|
(r'^permissions-example/', include('permissionsexample.urls')),
|
||||||
|
url(r'^restframework/', include('djangorestframework.urls', namespace='djangorestframework')),
|
||||||
(r'^', include('djangorestframework.urls')),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
urlpatterns += staticfiles_urlpatterns()
|
urlpatterns += staticfiles_urlpatterns()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user