diff options
| author | Tom Christie | 2014-09-19 14:05:50 +0100 |
|---|---|---|
| committer | Tom Christie | 2014-09-19 14:05:50 +0100 |
| commit | 88008c0a687219e3104d548196915b1068536d74 (patch) | |
| tree | 31c21a93d3e11e8ba66e83c96f8947783e8d676e /rest_framework | |
| parent | 6d73b5969a9d415a6d43175e77bc10ba76151e97 (diff) | |
| parent | 1e9ea377e3f0521ec5d9c21527cfad3c7626baaa (diff) | |
| download | django-rest-framework-88008c0a687219e3104d548196915b1068536d74.tar.bz2 | |
Merge branch 'master' into version-3.0
Diffstat (limited to 'rest_framework')
| -rw-r--r-- | rest_framework/authtoken/migrations/0001_initial.py | 7 | ||||
| -rw-r--r-- | rest_framework/authtoken/serializers.py | 2 | ||||
| -rw-r--r-- | rest_framework/routers.py | 12 | ||||
| -rw-r--r-- | rest_framework/viewsets.py | 3 |
4 files changed, 17 insertions, 7 deletions
diff --git a/rest_framework/authtoken/migrations/0001_initial.py b/rest_framework/authtoken/migrations/0001_initial.py index 2e5d6b47..769f6202 100644 --- a/rest_framework/authtoken/migrations/0001_initial.py +++ b/rest_framework/authtoken/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# encoding: utf8 +# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations @@ -15,12 +15,11 @@ class Migration(migrations.Migration): migrations.CreateModel( name='Token', fields=[ - ('key', models.CharField(max_length=40, serialize=False, primary_key=True)), - ('user', models.OneToOneField(to=settings.AUTH_USER_MODEL, to_field='id')), + ('key', models.CharField(primary_key=True, serialize=False, max_length=40)), ('created', models.DateTimeField(auto_now_add=True)), + ('user', models.OneToOneField(to=settings.AUTH_USER_MODEL, related_name='auth_token')), ], options={ - 'abstract': False, }, bases=(models.Model,), ), diff --git a/rest_framework/authtoken/serializers.py b/rest_framework/authtoken/serializers.py index edeae857..c2c456de 100644 --- a/rest_framework/authtoken/serializers.py +++ b/rest_framework/authtoken/serializers.py @@ -20,7 +20,7 @@ class AuthTokenSerializer(serializers.Serializer): msg = _('User account is disabled.') raise serializers.ValidationError(msg) else: - msg = _('Unable to login with provided credentials.') + msg = _('Unable to log in with provided credentials.') raise serializers.ValidationError(msg) else: msg = _('Must include "username" and "password"') diff --git a/rest_framework/routers.py b/rest_framework/routers.py index 8f1ab6fa..f2d06211 100644 --- a/rest_framework/routers.py +++ b/rest_framework/routers.py @@ -19,6 +19,7 @@ import itertools from collections import namedtuple from django.conf.urls import patterns, url from django.core.exceptions import ImproperlyConfigured +from django.core.urlresolvers import NoReverseMatch from rest_framework import views from rest_framework.response import Response from rest_framework.reverse import reverse @@ -287,7 +288,16 @@ class DefaultRouter(SimpleRouter): def get(self, request, *args, **kwargs): ret = {} for key, url_name in api_root_dict.items(): - ret[key] = reverse(url_name, request=request, format=kwargs.get('format', None)) + try: + ret[key] = reverse( + url_name, + request=request, + format=kwargs.get('format', None) + ) + except NoReverseMatch: + # Don't bail out if eg. no list routes exist, only detail routes. + continue + return Response(ret) return APIRoot.as_view() diff --git a/rest_framework/viewsets.py b/rest_framework/viewsets.py index bb5b304e..84b4bd8d 100644 --- a/rest_framework/viewsets.py +++ b/rest_framework/viewsets.py @@ -20,6 +20,7 @@ from __future__ import unicode_literals from functools import update_wrapper from django.utils.decorators import classonlymethod +from django.views.decorators.csrf import csrf_exempt from rest_framework import views, generics, mixins @@ -89,7 +90,7 @@ class ViewSetMixin(object): # resolved URL. view.cls = cls view.suffix = initkwargs.get('suffix', None) - return view + return csrf_exempt(view) def initialize_request(self, request, *args, **kargs): """ |
