Hello community,

here is the log from the commit of package python-django-tastypie for 
openSUSE:Factory checked in at 2015-04-23 08:04:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-django-tastypie (Old)
 and      /work/SRC/openSUSE:Factory/.python-django-tastypie.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-django-tastypie"

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-django-tastypie/python-django-tastypie.changes
    2014-07-10 14:56:42.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-django-tastypie.new/python-django-tastypie.changes
       2015-04-23 08:04:44.000000000 +0200
@@ -1,0 +2,12 @@
+Wed Apr 22 09:19:11 UTC 2015 - [email protected]
+
+- Update to version 0.12.1:
+  * Drastic reworking of the test suite. (SHA: 95f57f7)
+  * Fixed Travis to run Python 3.4 tests. (SHA: 7af528c)
+  * Fixed a bug where URLs would be incorrectly handled if the ``api_name`` &
+    ``resource_name`` were the same. (SHA: fd55aa3)
+  * Fixed a test requirement for PyYAML. (SHA: b4f6531)
+  * Added support for Django 1.7. (SHA: 7881bb6)
+  * Documentation updates
+
+-------------------------------------------------------------------

Old:
----
  django-tastypie-0.11.1.tar.gz

New:
----
  django-tastypie-0.12.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-django-tastypie.spec ++++++
--- /var/tmp/diff_new_pack.tLQXkV/_old  2015-04-23 08:04:44.000000000 +0200
+++ /var/tmp/diff_new_pack.tLQXkV/_new  2015-04-23 08:04:44.000000000 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-django-tastypie
 #
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           python-django-tastypie
-Version:        0.11.1
+Version:        0.12.1
 Release:        0
 Url:            http://github.com/toastdriven/django-tastypie/
 Summary:        A flexible & capable API layer for Django

++++++ django-tastypie-0.11.1.tar.gz -> django-tastypie-0.12.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-tastypie-0.11.1/PKG-INFO 
new/django-tastypie-0.12.1/PKG-INFO
--- old/django-tastypie-0.11.1/PKG-INFO 2014-05-22 18:10:38.000000000 +0200
+++ new/django-tastypie-0.12.1/PKG-INFO 2014-10-23 02:31:07.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: django-tastypie
-Version: 0.11.1
+Version: 0.12.1
 Summary: A flexible & capable API layer for Django.
 Home-page: http://github.com/toastdriven/django-tastypie/
 Author: Daniel Lindsley
@@ -12,7 +12,7 @@
         
         Creating delicious APIs for Django apps since 2010.
         
-        Currently in beta (v0.11.2-dev) but being used actively in production 
on several
+        Currently in beta (v0.12.0) but being used actively in production on 
several
         sites.
         
         
@@ -42,7 +42,9 @@
         What's It Look Like?
         ====================
         
-        A basic example looks like::
+        A basic example looks like:
+        
+        .. code:: python
         
             # myapp/api.py
             # ============
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-tastypie-0.11.1/README.rst 
new/django-tastypie-0.12.1/README.rst
--- old/django-tastypie-0.11.1/README.rst       2014-05-22 08:52:39.000000000 
+0200
+++ new/django-tastypie-0.12.1/README.rst       2014-10-23 02:26:04.000000000 
+0200
@@ -4,7 +4,7 @@
 
 Creating delicious APIs for Django apps since 2010.
 
-Currently in beta (v0.11.2-dev) but being used actively in production on 
several
+Currently in beta (v0.12.0) but being used actively in production on several
 sites.
 
 
@@ -34,7 +34,9 @@
 What's It Look Like?
 ====================
 
-A basic example looks like::
+A basic example looks like:
+
+.. code:: python
 
     # myapp/api.py
     # ============
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-tastypie-0.11.1/django_tastypie.egg-info/PKG-INFO 
new/django-tastypie-0.12.1/django_tastypie.egg-info/PKG-INFO
--- old/django-tastypie-0.11.1/django_tastypie.egg-info/PKG-INFO        
2014-05-22 18:10:34.000000000 +0200
+++ new/django-tastypie-0.12.1/django_tastypie.egg-info/PKG-INFO        
2014-10-23 02:31:06.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: django-tastypie
-Version: 0.11.1
+Version: 0.12.1
 Summary: A flexible & capable API layer for Django.
 Home-page: http://github.com/toastdriven/django-tastypie/
 Author: Daniel Lindsley
@@ -12,7 +12,7 @@
         
         Creating delicious APIs for Django apps since 2010.
         
-        Currently in beta (v0.11.2-dev) but being used actively in production 
on several
+        Currently in beta (v0.12.0) but being used actively in production on 
several
         sites.
         
         
@@ -42,7 +42,9 @@
         What's It Look Like?
         ====================
         
-        A basic example looks like::
+        A basic example looks like:
+        
+        .. code:: python
         
             # myapp/api.py
             # ============
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-tastypie-0.11.1/django_tastypie.egg-info/SOURCES.txt 
new/django-tastypie-0.12.1/django_tastypie.egg-info/SOURCES.txt
--- old/django-tastypie-0.11.1/django_tastypie.egg-info/SOURCES.txt     
2014-05-22 18:10:38.000000000 +0200
+++ new/django-tastypie-0.12.1/django_tastypie.egg-info/SOURCES.txt     
2014-10-23 02:31:07.000000000 +0200
@@ -139,6 +139,8 @@
 docs/release_notes/v0.10.0.rst
 docs/release_notes/v0.11.0.rst
 docs/release_notes/v0.11.1.rst
+docs/release_notes/v0.12.0.rst
+docs/release_notes/v0.12.1.rst
 docs/release_notes/v0.9.13.rst
 docs/release_notes/v0.9.14.rst
 docs/release_notes/v0.9.15.rst
@@ -172,8 +174,10 @@
 tastypie/management/commands/__init__.py
 tastypie/management/commands/backfill_api_keys.py
 tastypie/migrations/0001_initial.py
-tastypie/migrations/0002_add_apikey_index.py
 tastypie/migrations/__init__.py
+tastypie/south_migrations/0001_initial.py
+tastypie/south_migrations/0002_add_apikey_index.py
+tastypie/south_migrations/__init__.py
 tastypie/templates/tastypie/basic.html
 tastypie/templates/tastypie/detail.html
 tastypie/templates/tastypie/list.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-tastypie-0.11.1/docs/conf.py 
new/django-tastypie-0.12.1/docs/conf.py
--- old/django-tastypie-0.11.1/docs/conf.py     2014-05-22 08:55:49.000000000 
+0200
+++ new/django-tastypie-0.12.1/docs/conf.py     2014-10-23 02:27:53.000000000 
+0200
@@ -45,9 +45,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = '0.11.1'
+version = '0.12.1'
 # The full version, including alpha/beta/rc tags.
-release = '0.11.1'
+release = '0.12.1'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-tastypie-0.11.1/docs/release_notes/index.rst 
new/django-tastypie-0.12.1/docs/release_notes/index.rst
--- old/django-tastypie-0.11.1/docs/release_notes/index.rst     2014-05-22 
08:51:40.000000000 +0200
+++ new/django-tastypie-0.12.1/docs/release_notes/index.rst     2014-10-23 
02:28:40.000000000 +0200
@@ -4,6 +4,8 @@
 .. toctree::
    :maxdepth: 1
 
+   v0.12.1
+   v0.12.0
    v0.11.1
    v0.11.0
    v0.10.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-tastypie-0.11.1/docs/release_notes/v0.11.1.rst 
new/django-tastypie-0.12.1/docs/release_notes/v0.11.1.rst
--- old/django-tastypie-0.11.1/docs/release_notes/v0.11.1.rst   2014-05-22 
08:51:01.000000000 +0200
+++ new/django-tastypie-0.12.1/docs/release_notes/v0.11.1.rst   2014-05-22 
18:24:49.000000000 +0200
@@ -31,7 +31,7 @@
    to prevent this kind of attack in the future. Thanks to Micah Hausler for
    the report!
 
-   Fixed in SHA: 882a13f
+   Fixed in SHA: ae515bd
 
 Should you find a security issue in Tastypie, please report it to
 [email protected]. Please **DO NOT** open GitHub issues or
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-tastypie-0.11.1/docs/release_notes/v0.12.0.rst 
new/django-tastypie-0.12.1/docs/release_notes/v0.12.0.rst
--- old/django-tastypie-0.11.1/docs/release_notes/v0.12.0.rst   1970-01-01 
01:00:00.000000000 +0100
+++ new/django-tastypie-0.12.1/docs/release_notes/v0.12.0.rst   2014-09-12 
03:14:54.000000000 +0200
@@ -0,0 +1,39 @@
+v0.12.0
+=======
+
+:date: 2014-09-11
+
+This release adds official support for both Django 1.7, as well as
+several bugfixes.
+
+.. warning::
+
+  If you were previously relying on importing the ``User`` model from
+  ``tastypie.compat``, this import will no longer work correctly. This was
+  removed due to the way app-loading works in Django 1.7 & no great solution
+  for dodging this issue exists.
+
+  If you were using either of::
+
+    from tastypie.compat import User
+    from tastypie.compat import username_field
+
+  Please update your code as follows::
+
+    from tastypie.compat import get_user_model
+    from tastypie.compat import get_username_field
+
+
+Bugfixes
+--------
+
+* Drastic reworking of the test suite. (SHA: 95f57f7)
+* Fixed Travis to run Python 3.4 tests. (SHA: 7af528c)
+* Fixed a bug where URLs would be incorrectly handled if the ``api_name`` &
+  ``resource_name`` were the same. (SHA: fd55aa3)
+* Fixed a test requirement for PyYAML. (SHA: b4f6531)
+* Added support for Django 1.7. (SHA: 7881bb6)
+* Documentation updates:
+
+    * Fixed header in ``tools.rst``. (SHA: f8af772)
+    * Fixed header in ``resources.rst``. (SHA: 9508cbf)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-tastypie-0.11.1/docs/release_notes/v0.12.1.rst 
new/django-tastypie-0.12.1/docs/release_notes/v0.12.1.rst
--- old/django-tastypie-0.11.1/docs/release_notes/v0.12.1.rst   1970-01-01 
01:00:00.000000000 +0100
+++ new/django-tastypie-0.12.1/docs/release_notes/v0.12.1.rst   2014-10-23 
02:27:43.000000000 +0200
@@ -0,0 +1,7 @@
+v0.12.1
+=======
+
+:date: 2014-10-22
+
+This release is a small bugfix release, specifically to remove accidentally
+added files in the Wheel release.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-tastypie-0.11.1/docs/resources.rst 
new/django-tastypie-0.12.1/docs/resources.rst
--- old/django-tastypie-0.11.1/docs/resources.rst       2014-05-04 
20:01:45.000000000 +0200
+++ new/django-tastypie-0.12.1/docs/resources.rst       2014-09-12 
02:12:02.000000000 +0200
@@ -596,7 +596,7 @@
 ``ordering``
 ------------
 
-  Specifies the what fields the ``Resource`` should should allow ordering on.
+  Specifies the what fields the ``Resource`` should allow ordering on.
   Default is ``[]``.
 
   Values should be the fieldnames as strings. When provided to the ``Resource``
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-tastypie-0.11.1/docs/tools.rst 
new/django-tastypie-0.12.1/docs/tools.rst
--- old/django-tastypie-0.11.1/docs/tools.rst   2014-05-04 20:01:45.000000000 
+0200
+++ new/django-tastypie-0.12.1/docs/tools.rst   2014-09-12 02:12:02.000000000 
+0200
@@ -21,7 +21,7 @@
 nicely reformats JSON data in the browser.
 
 Postman - Rest Client
---------------------
+---------------------
 * Chrome - 
https://chrome.google.com/webstore/detail/fdmmgilgnpjigdojojpjoooidkmcomcm
 
 A feature rich Chrome extension with JSON and XML support
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-tastypie-0.11.1/setup.py 
new/django-tastypie-0.12.1/setup.py
--- old/django-tastypie-0.11.1/setup.py 2014-05-22 08:53:16.000000000 +0200
+++ new/django-tastypie-0.12.1/setup.py 2014-10-23 02:27:49.000000000 +0200
@@ -10,7 +10,7 @@
 
 setup(
     name='django-tastypie',
-    version='0.11.1',
+    version='0.12.1',
     description='A flexible & capable API layer for Django.',
     author='Daniel Lindsley',
     author_email='[email protected]',
@@ -21,6 +21,7 @@
         'tastypie.utils',
         'tastypie.management',
         'tastypie.management.commands',
+        'tastypie.south_migrations',
         'tastypie.migrations',
         'tastypie.contrib',
         'tastypie.contrib.gis',
@@ -38,7 +39,7 @@
         'python-mimeparse >= 0.1.4',
         'python-dateutil >= 1.5, != 2.0',
     ],
-    tests_require=['mock'],
+    tests_require=['mock', 'PyYAML', 'lxml', 'defusedxml'],
     classifiers=[
         'Development Status :: 4 - Beta',
         'Environment :: Web Environment',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-tastypie-0.11.1/tastypie/__init__.py 
new/django-tastypie-0.12.1/tastypie/__init__.py
--- old/django-tastypie-0.11.1/tastypie/__init__.py     2014-05-22 
08:55:43.000000000 +0200
+++ new/django-tastypie-0.12.1/tastypie/__init__.py     2014-10-23 
02:27:57.000000000 +0200
@@ -2,4 +2,4 @@
 
 
 __author__ = 'Daniel Lindsley & the Tastypie core team'
-__version__ = (0, 11, 1)
+__version__ = (0, 12, 1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-tastypie-0.11.1/tastypie/authentication.py 
new/django-tastypie-0.12.1/tastypie/authentication.py
--- old/django-tastypie-0.11.1/tastypie/authentication.py       2013-08-03 
21:40:31.000000000 +0200
+++ new/django-tastypie-0.12.1/tastypie/authentication.py       2014-09-12 
02:42:35.000000000 +0200
@@ -11,7 +11,7 @@
 from django.utils.http import same_origin
 from django.utils.translation import ugettext as _
 from tastypie.http import HttpUnauthorized
-from tastypie.compat import User, username_field
+from tastypie.compat import get_user_model, get_username_field
 
 try:
     from hashlib import sha1
@@ -180,7 +180,6 @@
         Should return either ``True`` if allowed, ``False`` if not or an
         ``HttpResponse`` if you need something custom.
         """
-        from tastypie.compat import User
 
         try:
             username, api_key = self.extract_credentials(request)
@@ -190,6 +189,9 @@
         if not username or not api_key:
             return self._unauthorized()
 
+        username_field = get_username_field()
+        User = get_user_model()
+
         try:
             lookup_kwargs = {username_field: username}
             user = User.objects.get(**lookup_kwargs)
@@ -280,7 +282,8 @@
 
         This implementation returns the user's username.
         """
-        return getattr(request.user, username_field)
+
+        return getattr(request.user, get_username_field())
 
 
 class DigestAuthentication(Authentication):
@@ -366,6 +369,9 @@
         return True
 
     def get_user(self, username):
+        username_field = get_username_field()
+        User = get_user_model()
+
         try:
             lookup_kwargs = {username_field: username}
             user = User.objects.get(**lookup_kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-tastypie-0.11.1/tastypie/compat.py 
new/django-tastypie-0.12.1/tastypie/compat.py
--- old/django-tastypie-0.11.1/tastypie/compat.py       2013-08-03 
21:38:18.000000000 +0200
+++ new/django-tastypie-0.12.1/tastypie/compat.py       2014-09-12 
02:42:35.000000000 +0200
@@ -1,24 +1,25 @@
 from __future__ import unicode_literals
 from django.conf import settings
-from django.core.exceptions import ImproperlyConfigured
 import django
 
-__all__ = ['User', 'AUTH_USER_MODEL']
+__all__ = ['get_user_model', 'get_username_field', 'AUTH_USER_MODEL']
 
 AUTH_USER_MODEL = getattr(settings, 'AUTH_USER_MODEL', 'auth.User')
 
 # Django 1.5+ compatibility
 if django.VERSION >= (1, 5):
-    try:
-        from django.contrib.auth import get_user_model
-        User = get_user_model()
-        username_field = User.USERNAME_FIELD
-    except ImproperlyConfigured:
-        # The the users model might not be read yet.
-        # This can happen is when setting up the create_api_key signal, in your
-        # custom user module.
-        User = None
-        username_field = None
+    def get_user_model():
+        from django.contrib.auth import get_user_model as django_get_user_model
+
+        return django_get_user_model()
+
+    def get_username_field():
+        return get_user_model().USERNAME_FIELD
 else:
-    from django.contrib.auth.models import User
-    username_field = 'username'
+    def get_user_model():
+        from django.contrib.auth.models import User
+
+        return User
+
+    def get_username_field():
+        return 'username'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-tastypie-0.11.1/tastypie/contrib/gis/resources.py 
new/django-tastypie-0.12.1/tastypie/contrib/gis/resources.py
--- old/django-tastypie-0.11.1/tastypie/contrib/gis/resources.py        
2014-05-04 20:01:45.000000000 +0200
+++ new/django-tastypie-0.12.1/tastypie/contrib/gis/resources.py        
2014-09-12 02:12:02.000000000 +0200
@@ -1,6 +1,9 @@
 # See COPYING file in this directory.
 # Some code originally from django-boundaryservice
 from __future__ import unicode_literals
+
+import json
+
 try:
     from urllib.parse import unquote
 except ImportError:
@@ -9,8 +12,6 @@
 from django.contrib.gis.db.models import GeometryField
 from django.contrib.gis.geos import GEOSGeometry
 
-import json
-
 from tastypie.fields import ApiField, CharField
 from tastypie import resources
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-tastypie-0.11.1/tastypie/fields.py 
new/django-tastypie-0.12.1/tastypie/fields.py
--- old/django-tastypie-0.11.1/tastypie/fields.py       2014-05-04 
23:03:13.000000000 +0200
+++ new/django-tastypie-0.12.1/tastypie/fields.py       2014-10-23 
02:26:04.000000000 +0200
@@ -707,6 +707,7 @@
 
     def dehydrate(self, bundle, for_list=True):
         foreign_obj = None
+        error_to_raise = None
 
         if isinstance(self.attribute, six.string_types):
             attrs = self.attribute.split('__')
@@ -718,14 +719,19 @@
                     foreign_obj = getattr(foreign_obj, attr, None)
                 except ObjectDoesNotExist:
                     foreign_obj = None
+        
         elif callable(self.attribute):
+            previous_obj = bundle.obj
             foreign_obj = self.attribute(bundle)
-
+            
         if not foreign_obj:
             if not self.null:
-                raise ApiFieldError("The model '%r' has an empty attribute 
'%s' and doesn't allow a null value." % (previous_obj, attr))
-
-            return None
+                if callable(self.attribute):
+                    raise ApiFieldError("The related resource for resource %s 
could not be found." % (previous_obj))
+                else:
+                    raise ApiFieldError("The model '%r' has an empty attribute 
'%s' and doesn't allow a null value." % (previous_obj, attr))
+            
+            return None        
 
         self.fk_resource = self.get_related_resource(foreign_obj)
         fk_bundle = Bundle(obj=foreign_obj, request=bundle.request)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-tastypie-0.11.1/tastypie/management/commands/backfill_api_keys.py 
new/django-tastypie-0.12.1/tastypie/management/commands/backfill_api_keys.py
--- 
old/django-tastypie-0.11.1/tastypie/management/commands/backfill_api_keys.py    
    2013-08-03 21:37:21.000000000 +0200
+++ 
new/django-tastypie-0.12.1/tastypie/management/commands/backfill_api_keys.py    
    2014-09-12 02:42:35.000000000 +0200
@@ -1,7 +1,7 @@
 from __future__ import print_function
 from __future__ import unicode_literals
 from django.core.management.base import NoArgsCommand
-from tastypie.compat import User
+from tastypie.compat import get_user_model
 from tastypie.models import ApiKey
 
 
@@ -12,6 +12,7 @@
         """Goes through all users and adds API keys for any that don't have 
one."""
         self.verbosity = int(options.get('verbosity', 1))
 
+        User = get_user_model()
         for user in User.objects.all().iterator():
             try:
                 api_key = ApiKey.objects.get(user=user)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-tastypie-0.11.1/tastypie/migrations/0001_initial.py 
new/django-tastypie-0.12.1/tastypie/migrations/0001_initial.py
--- old/django-tastypie-0.11.1/tastypie/migrations/0001_initial.py      
2013-08-03 21:37:21.000000000 +0200
+++ new/django-tastypie-0.12.1/tastypie/migrations/0001_initial.py      
2014-09-12 02:42:35.000000000 +0200
@@ -1,97 +1,42 @@
-# encoding: utf-8
+# -*- coding: utf-8 -*-
 from __future__ import unicode_literals
-import datetime
-from south.db import db
-from south.v2 import SchemaMigration
-from django.db import models
-from tastypie.compat import AUTH_USER_MODEL
 
-
-class Migration(SchemaMigration):
-
-    def forwards(self, orm):
-
-        # Adding model 'ApiAccess'
-        db.create_table('tastypie_apiaccess', (
-            ('id', 
self.gf('django.db.models.fields.AutoField')(primary_key=True)),
-            ('identifier', 
self.gf('django.db.models.fields.CharField')(max_length=255)),
-            ('url', self.gf('django.db.models.fields.CharField')(default='', 
max_length=255, blank=True)),
-            ('request_method', 
self.gf('django.db.models.fields.CharField')(default='', max_length=10, 
blank=True)),
-            ('accessed', 
self.gf('django.db.models.fields.PositiveIntegerField')()),
-        ))
-        db.send_create_signal('tastypie', ['ApiAccess'])
-
-        # Adding model 'ApiKey'
-        db.create_table('tastypie_apikey', (
-            ('id', 
self.gf('django.db.models.fields.AutoField')(primary_key=True)),
-            ('user', 
self.gf('django.db.models.fields.related.OneToOneField')(related_name='api_key',
 unique=True, to=orm[AUTH_USER_MODEL])),
-            ('key', self.gf('django.db.models.fields.CharField')(default='', 
max_length=256, blank=True)),
-            ('created', 
self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
-        ))
-        db.send_create_signal('tastypie', ['ApiKey'])
-
-
-    def backwards(self, orm):
-
-        # Deleting model 'ApiAccess'
-        db.delete_table('tastypie_apiaccess')
-
-        # Deleting model 'ApiKey'
-        db.delete_table('tastypie_apikey')
-
-
-    models = {
-        'auth.group': {
-            'Meta': {'object_name': 'Group'},
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
-            'name': ('django.db.models.fields.CharField', [], {'unique': 
'True', 'max_length': '80'}),
-            'permissions': ('django.db.models.fields.related.ManyToManyField', 
[], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
-        },
-        'auth.permission': {
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 
'object_name': 'Permission'},
-            'codename': ('django.db.models.fields.CharField', [], 
{'max_length': '100'}),
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], 
{'to': "orm['contenttypes.ContentType']"}),
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
-            'name': ('django.db.models.fields.CharField', [], {'max_length': 
'50'})
-        },
-        AUTH_USER_MODEL: {
-            'Meta': {'object_name': AUTH_USER_MODEL.split('.')[-1]},
-            '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'}),
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], 
{'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
-            'is_active': ('django.db.models.fields.BooleanField', [], 
{'default': 'True', 'blank': 'True'}),
-            'is_staff': ('django.db.models.fields.BooleanField', [], 
{'default': 'False', 'blank': 'True'}),
-            'is_superuser': ('django.db.models.fields.BooleanField', [], 
{'default': 'False', 'blank': 'True'}),
-            'last_login': ('django.db.models.fields.DateTimeField', [], 
{'default': 'datetime.datetime.now'}),
-            'last_name': ('django.db.models.fields.CharField', [], 
{'max_length': '30', 'blank': 'True'}),
-            'password': ('django.db.models.fields.CharField', [], 
{'max_length': '128'}),
-            'user_permissions': 
('django.db.models.fields.related.ManyToManyField', [], {'to': 
"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
-            'username': ('django.db.models.fields.CharField', [], {'unique': 
'True', 'max_length': '30'})
-        },
-        'contenttypes.contenttype': {
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 
'object_name': 'ContentType', 'db_table': "'django_content_type'"},
-            'app_label': ('django.db.models.fields.CharField', [], 
{'max_length': '100'}),
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
-            'model': ('django.db.models.fields.CharField', [], {'max_length': 
'100'}),
-            'name': ('django.db.models.fields.CharField', [], {'max_length': 
'100'})
-        },
-        'tastypie.apiaccess': {
-            'Meta': {'object_name': 'ApiAccess'},
-            'accessed': ('django.db.models.fields.PositiveIntegerField', [], 
{}),
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
-            'identifier': ('django.db.models.fields.CharField', [], 
{'max_length': '255'}),
-            'request_method': ('django.db.models.fields.CharField', [], 
{'default': "''", 'max_length': '10', 'blank': 'True'}),
-            'url': ('django.db.models.fields.CharField', [], {'default': "''", 
'max_length': '255', 'blank': 'True'})
-        },
-        'tastypie.apikey': {
-            'Meta': {'object_name': 'ApiKey'},
-            'created': ('django.db.models.fields.DateTimeField', [], 
{'default': 'datetime.datetime.now'}),
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
-            'key': ('django.db.models.fields.CharField', [], {'default': "''", 
'max_length': '256', 'blank': 'True'}),
-            'user': ('django.db.models.fields.related.OneToOneField', [], 
{'related_name': "'api_key'", 'unique': 'True', 'to': "orm['%s']" % 
AUTH_USER_MODEL})
-        }
-    }
-
-    complete_apps = ['tastypie']
+from django.db import models, migrations
+from django.conf import settings
+import tastypie.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='ApiAccess',
+            fields=[
+                ('id', models.AutoField(verbose_name='ID', serialize=False, 
auto_created=True, primary_key=True)),
+                ('identifier', models.CharField(max_length=255)),
+                ('url', models.CharField(default='', max_length=255, 
blank=True)),
+                ('request_method', models.CharField(default='', max_length=10, 
blank=True)),
+                ('accessed', models.PositiveIntegerField()),
+            ],
+            options={
+            },
+            bases=(models.Model,),
+        ),
+        migrations.CreateModel(
+            name='ApiKey',
+            fields=[
+                ('id', models.AutoField(verbose_name='ID', serialize=False, 
auto_created=True, primary_key=True)),
+                ('key', models.CharField(default='', max_length=128, 
db_index=True, blank=True)),
+                ('created', 
models.DateTimeField(default=tastypie.utils.timezone.now)),
+                ('user', models.OneToOneField(related_name='api_key', 
to=settings.AUTH_USER_MODEL)),
+            ],
+            options={
+                'abstract': False,
+            },
+            bases=(models.Model,),
+        ),
+    ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-tastypie-0.11.1/tastypie/migrations/0002_add_apikey_index.py 
new/django-tastypie-0.12.1/tastypie/migrations/0002_add_apikey_index.py
--- old/django-tastypie-0.11.1/tastypie/migrations/0002_add_apikey_index.py     
2013-08-03 21:37:21.000000000 +0200
+++ new/django-tastypie-0.12.1/tastypie/migrations/0002_add_apikey_index.py     
1970-01-01 01:00:00.000000000 +0100
@@ -1,76 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-import datetime
-from south.db import db
-from south.v2 import SchemaMigration
-from django.db import models
-from tastypie.compat import AUTH_USER_MODEL
-
-
-class Migration(SchemaMigration):
-
-    def forwards(self, orm):
-        if not db.backend_name in ('mysql', 'sqlite'):
-            # Adding index on 'ApiKey', fields ['key']
-            db.create_index('tastypie_apikey', ['key'])
-
-    def backwards(self, orm):
-        if not db.backend_name in ('mysql', 'sqlite'):
-            # Removing index on 'ApiKey', fields ['key']
-            db.delete_index('tastypie_apikey', ['key'])
-
-    models = {
-        'auth.group': {
-            'Meta': {'object_name': 'Group'},
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
-            'name': ('django.db.models.fields.CharField', [], {'unique': 
'True', 'max_length': '80'}),
-            'permissions': ('django.db.models.fields.related.ManyToManyField', 
[], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
-        },
-        'auth.permission': {
-            'Meta': {'ordering': "('content_type__app_label', 
'content_type__model', 'codename')", 'unique_together': "(('content_type', 
'codename'),)", 'object_name': 'Permission'},
-            'codename': ('django.db.models.fields.CharField', [], 
{'max_length': '100'}),
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], 
{'to': "orm['contenttypes.ContentType']"}),
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
-            'name': ('django.db.models.fields.CharField', [], {'max_length': 
'50'})
-        },
-        AUTH_USER_MODEL: {
-            'Meta': {'object_name': AUTH_USER_MODEL.split('.')[-1]},
-            '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'}),
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], 
{'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
-            'is_active': ('django.db.models.fields.BooleanField', [], 
{'default': 'True', 'blank': 'True'}),
-            'is_staff': ('django.db.models.fields.BooleanField', [], 
{'default': 'False', 'blank': 'True'}),
-            'is_superuser': ('django.db.models.fields.BooleanField', [], 
{'default': 'False', 'blank': 'True'}),
-            'last_login': ('django.db.models.fields.DateTimeField', [], 
{'default': 'datetime.datetime.now'}),
-            'last_name': ('django.db.models.fields.CharField', [], 
{'max_length': '30', 'blank': 'True'}),
-            'password': ('django.db.models.fields.CharField', [], 
{'max_length': '128'}),
-            'user_permissions': 
('django.db.models.fields.related.ManyToManyField', [], {'to': 
"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
-            'username': ('django.db.models.fields.CharField', [], {'unique': 
'True', 'max_length': '30'})
-        },
-        'contenttypes.contenttype': {
-            'Meta': {'ordering': "('name',)", 'unique_together': 
"(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': 
"'django_content_type'"},
-            'app_label': ('django.db.models.fields.CharField', [], 
{'max_length': '100'}),
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
-            'model': ('django.db.models.fields.CharField', [], {'max_length': 
'100'}),
-            'name': ('django.db.models.fields.CharField', [], {'max_length': 
'100'})
-        },
-        'tastypie.apiaccess': {
-            'Meta': {'object_name': 'ApiAccess'},
-            'accessed': ('django.db.models.fields.PositiveIntegerField', [], 
{}),
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
-            'identifier': ('django.db.models.fields.CharField', [], 
{'max_length': '255'}),
-            'request_method': ('django.db.models.fields.CharField', [], 
{'default': "''", 'max_length': '10', 'blank': 'True'}),
-            'url': ('django.db.models.fields.CharField', [], {'default': "''", 
'max_length': '255', 'blank': 'True'})
-        },
-        'tastypie.apikey': {
-            'Meta': {'object_name': 'ApiKey'},
-            'created': ('django.db.models.fields.DateTimeField', [], 
{'default': 'datetime.datetime(2012, 11, 5, 0, 0)'}),
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
-            'key': ('django.db.models.fields.CharField', [], {'default': "''", 
'max_length': '256', 'db_index': 'True', 'blank': 'True'}),
-            'user': ('django.db.models.fields.related.OneToOneField', [], 
{'related_name': "'api_key'", 'unique': 'True', 'to': "orm['%s']" % 
AUTH_USER_MODEL})
-        }
-    }
-
-    complete_apps = ['tastypie']
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-tastypie-0.11.1/tastypie/models.py 
new/django-tastypie-0.12.1/tastypie/models.py
--- old/django-tastypie-0.11.1/tastypie/models.py       2013-12-03 
05:51:05.000000000 +0100
+++ new/django-tastypie-0.12.1/tastypie/models.py       2014-09-12 
02:42:35.000000000 +0200
@@ -3,6 +3,7 @@
 import time
 from django.conf import settings
 from django.db import models
+from django.utils.encoding import python_2_unicode_compatible
 from tastypie.utils import now
 
 try:
@@ -11,7 +12,7 @@
     import sha
     sha1 = sha.sha
 
-
+@python_2_unicode_compatible
 class ApiAccess(models.Model):
     """A simple model for use with the ``CacheDBThrottle`` behaviors."""
     identifier = models.CharField(max_length=255)
@@ -19,8 +20,8 @@
     request_method = models.CharField(max_length=10, blank=True, default='')
     accessed = models.PositiveIntegerField()
 
-    def __unicode__(self):
-        return u"%s @ %s" % (self.identifier, self.accessed)
+    def __str__(self):
+        return "%s @ %s" % (self.identifier, self.accessed)
 
     def save(self, *args, **kwargs):
         self.accessed = int(time.time())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-tastypie-0.11.1/tastypie/resources.py 
new/django-tastypie-0.12.1/tastypie/resources.py
--- old/django-tastypie-0.11.1/tastypie/resources.py    2014-05-22 
08:23:42.000000000 +0200
+++ new/django-tastypie-0.12.1/tastypie/resources.py    2014-09-12 
02:37:17.000000000 +0200
@@ -805,12 +805,10 @@
         # We mangle the path a bit further & run URL resolution against *only*
         # the current class. This ought to prevent bad URLs from resolving to
         # incorrect data.
-        try:
-            found_at = chomped_uri.index(self._meta.resource_name)
-            chomped_uri = chomped_uri[found_at:]
-        except ValueError:
+        found_at = chomped_uri.rfind(self._meta.resource_name)
+        if found_at == -1:
             raise NotFound("An incorrect URL was provided '%s' for the '%s' 
resource." % (uri, self.__class__.__name__))
-
+        chomped_uri = chomped_uri[found_at:]
         try:
             for url_resolver in getattr(self, 'urls', []):
                 result = url_resolver.resolve(chomped_uri)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-tastypie-0.11.1/tastypie/south_migrations/0001_initial.py 
new/django-tastypie-0.12.1/tastypie/south_migrations/0001_initial.py
--- old/django-tastypie-0.11.1/tastypie/south_migrations/0001_initial.py        
1970-01-01 01:00:00.000000000 +0100
+++ new/django-tastypie-0.12.1/tastypie/south_migrations/0001_initial.py        
2014-09-12 02:42:35.000000000 +0200
@@ -0,0 +1,97 @@
+# encoding: utf-8
+from __future__ import unicode_literals
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+from tastypie.compat import AUTH_USER_MODEL
+
+
+class Migration(SchemaMigration):
+
+    def forwards(self, orm):
+
+        # Adding model 'ApiAccess'
+        db.create_table('tastypie_apiaccess', (
+            ('id', 
self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('identifier', 
self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('url', self.gf('django.db.models.fields.CharField')(default='', 
max_length=255, blank=True)),
+            ('request_method', 
self.gf('django.db.models.fields.CharField')(default='', max_length=10, 
blank=True)),
+            ('accessed', 
self.gf('django.db.models.fields.PositiveIntegerField')()),
+        ))
+        db.send_create_signal('tastypie', ['ApiAccess'])
+
+        # Adding model 'ApiKey'
+        db.create_table('tastypie_apikey', (
+            ('id', 
self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('user', 
self.gf('django.db.models.fields.related.OneToOneField')(related_name='api_key',
 unique=True, to=orm[AUTH_USER_MODEL])),
+            ('key', self.gf('django.db.models.fields.CharField')(default='', 
max_length=256, blank=True)),
+            ('created', 
self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+        ))
+        db.send_create_signal('tastypie', ['ApiKey'])
+
+
+    def backwards(self, orm):
+
+        # Deleting model 'ApiAccess'
+        db.delete_table('tastypie_apiaccess')
+
+        # Deleting model 'ApiKey'
+        db.delete_table('tastypie_apikey')
+
+
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 
'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', 
[], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 
'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], 
{'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], 
{'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': 
'50'})
+        },
+        AUTH_USER_MODEL: {
+            'Meta': {'object_name': AUTH_USER_MODEL.split('.')[-1]},
+            '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'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], 
{'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], 
{'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], 
{'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], 
{'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], 
{'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], 
{'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], 
{'max_length': '128'}),
+            'user_permissions': 
('django.db.models.fields.related.ManyToManyField', [], {'to': 
"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 
'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 
'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], 
{'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': 
'100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': 
'100'})
+        },
+        'tastypie.apiaccess': {
+            'Meta': {'object_name': 'ApiAccess'},
+            'accessed': ('django.db.models.fields.PositiveIntegerField', [], 
{}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
+            'identifier': ('django.db.models.fields.CharField', [], 
{'max_length': '255'}),
+            'request_method': ('django.db.models.fields.CharField', [], 
{'default': "''", 'max_length': '10', 'blank': 'True'}),
+            'url': ('django.db.models.fields.CharField', [], {'default': "''", 
'max_length': '255', 'blank': 'True'})
+        },
+        'tastypie.apikey': {
+            'Meta': {'object_name': 'ApiKey'},
+            'created': ('django.db.models.fields.DateTimeField', [], 
{'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'default': "''", 
'max_length': '256', 'blank': 'True'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], 
{'related_name': "'api_key'", 'unique': 'True', 'to': "orm['%s']" % 
AUTH_USER_MODEL})
+        }
+    }
+
+    complete_apps = ['tastypie']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-tastypie-0.11.1/tastypie/south_migrations/0002_add_apikey_index.py 
new/django-tastypie-0.12.1/tastypie/south_migrations/0002_add_apikey_index.py
--- 
old/django-tastypie-0.11.1/tastypie/south_migrations/0002_add_apikey_index.py   
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/django-tastypie-0.12.1/tastypie/south_migrations/0002_add_apikey_index.py   
    2014-09-12 02:42:36.000000000 +0200
@@ -0,0 +1,76 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+from tastypie.compat import AUTH_USER_MODEL
+
+
+class Migration(SchemaMigration):
+
+    def forwards(self, orm):
+        if not db.backend_name in ('mysql', 'sqlite'):
+            # Adding index on 'ApiKey', fields ['key']
+            db.create_index('tastypie_apikey', ['key'])
+
+    def backwards(self, orm):
+        if not db.backend_name in ('mysql', 'sqlite'):
+            # Removing index on 'ApiKey', fields ['key']
+            db.delete_index('tastypie_apikey', ['key'])
+
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 
'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', 
[], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'ordering': "('content_type__app_label', 
'content_type__model', 'codename')", 'unique_together': "(('content_type', 
'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], 
{'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], 
{'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': 
'50'})
+        },
+        AUTH_USER_MODEL: {
+            'Meta': {'object_name': AUTH_USER_MODEL.split('.')[-1]},
+            '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'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], 
{'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], 
{'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], 
{'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], 
{'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], 
{'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], 
{'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], 
{'max_length': '128'}),
+            'user_permissions': 
('django.db.models.fields.related.ManyToManyField', [], {'to': 
"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 
'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'ordering': "('name',)", 'unique_together': 
"(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': 
"'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], 
{'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': 
'100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': 
'100'})
+        },
+        'tastypie.apiaccess': {
+            'Meta': {'object_name': 'ApiAccess'},
+            'accessed': ('django.db.models.fields.PositiveIntegerField', [], 
{}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
+            'identifier': ('django.db.models.fields.CharField', [], 
{'max_length': '255'}),
+            'request_method': ('django.db.models.fields.CharField', [], 
{'default': "''", 'max_length': '10', 'blank': 'True'}),
+            'url': ('django.db.models.fields.CharField', [], {'default': "''", 
'max_length': '255', 'blank': 'True'})
+        },
+        'tastypie.apikey': {
+            'Meta': {'object_name': 'ApiKey'},
+            'created': ('django.db.models.fields.DateTimeField', [], 
{'default': 'datetime.datetime(2012, 11, 5, 0, 0)'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 
'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'default': "''", 
'max_length': '256', 'db_index': 'True', 'blank': 'True'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], 
{'related_name': "'api_key'", 'unique': 'True', 'to': "orm['%s']" % 
AUTH_USER_MODEL})
+        }
+    }
+
+    complete_apps = ['tastypie']
\ No newline at end of file


Reply via email to