From 4cdb6b2959f6d13417c48781d53c4e7e685934e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Gro=C3=9F?= Date: Mon, 4 Mar 2013 13:53:39 +0100 Subject: [PATCH] Fix authtoken migration --- docs/api-guide/settings.md | 12 ++++++++++++ docs/topics/release-notes.md | 1 + rest_framework/authtoken/migrations/0001_initial.py | 6 +++++- rest_framework/settings.py | 3 +++ 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/docs/api-guide/settings.md b/docs/api-guide/settings.md index e103fbab4..0ecb1d2d6 100644 --- a/docs/api-guide/settings.md +++ b/docs/api-guide/settings.md @@ -174,4 +174,16 @@ The name of a parameter in the URL conf that may be used to provide a format suf Default: `'format'` +## REQUIRED_MIGRATIONS + +This is a list of required migrations which are needed by the authtoken migration. + +E.g. + + ( + ('users', '0001_initial'), + ) + +Default: `'()'` + [cite]: http://www.python.org/dev/peps/pep-0020/ diff --git a/docs/topics/release-notes.md b/docs/topics/release-notes.md index 43499c9a9..f6ef2c18f 100644 --- a/docs/topics/release-notes.md +++ b/docs/topics/release-notes.md @@ -45,6 +45,7 @@ You can determine your currently installed version using `pip freeze`: * Request authentication is no longer lazily evaluated, instead authentication is always run, which results in more consistent, obvious behavior. Eg. Supplying bad auth credentials will now always return an error response, even if no permissions are set on the view. * Bugfix for serializer data being uncacheable with pickle protocol 0. * Bugfixes for model field validation edge-cases. +* Bugfix for authtoken migration while using a custom user model. ### 2.2.1 diff --git a/rest_framework/authtoken/migrations/0001_initial.py b/rest_framework/authtoken/migrations/0001_initial.py index f4e052e48..b0c81bf19 100644 --- a/rest_framework/authtoken/migrations/0001_initial.py +++ b/rest_framework/authtoken/migrations/0001_initial.py @@ -4,6 +4,8 @@ from south.db import db from south.v2 import SchemaMigration from django.db import models +from rest_framework.settings import api_settings + try: from django.contrib.auth import get_user_model @@ -15,6 +17,8 @@ else: class Migration(SchemaMigration): + depends_on = api_settings.REQUIRED_MIGRATIONS + def forwards(self, orm): # Adding model 'Token' db.create_table('authtoken_token', ( @@ -45,7 +49,7 @@ class Migration(SchemaMigration): 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) }, "%s.%s" % (User._meta.app_label, User._meta.module_name): { - 'Meta': {'object_name': 'User'}, + 'Meta': {'object_name': User._meta.module_name}, 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), diff --git a/rest_framework/settings.py b/rest_framework/settings.py index b7aa0bbe0..319122150 100644 --- a/rest_framework/settings.py +++ b/rest_framework/settings.py @@ -76,6 +76,9 @@ DEFAULTS = { 'URL_FORMAT_OVERRIDE': 'format', 'FORMAT_SUFFIX_KWARG': 'format', + + # Authtoken + 'REQUIRED_MIGRATIONS': (), }