usuarios tutorial guardian gestion extender python mysql django django-south django-1.8

python - tutorial - gestion de usuarios django



La actualizaciĆ³n de Django 1.6(con sur) a 1.8 no modifica ''last_login'' en la tabla de usuarios (1)

Como se señala en las notas de la versión 1.8 :

Si está utilizando un modelo de usuario personalizado que se hereda de AbstractUser , necesitará ejecutar makemigrations y generar una migración para su aplicación que contenga ese modelo.

He actualizado de Django 1.6.5 (con migraciones al sur) a Django 1.8. He seguido las instrucciones aquí: https://docs.djangoproject.com/en/1.8/topics/migrations/#upgrading-from-south

Por lo tanto, python manage.py makemigrations mis migraciones anteriores y ejecuto python manage.py makemigrations que python manage.py makemigrations un nuevo archivo de migración. Luego ejecuto python manage.py migrate --fake-initial para falsificar la migración inicial. Luego ejecuto python manage.py migrate .

Todo funciona bien sin errores.

Tengo un modelo de usuario personalizado que hereda AbstractBaseUser . En Django 1.8 parece que hay un cambio en el campo last_login donde ahora puede aceptar un valor null ( https://docs.djangoproject.com/fr/1.8/ref/contrib/auth/#django.contrib.auth.models.User.last_login ).

El problema que tengo es que la migración no cambia el campo last_login en la tabla de la base de datos para aceptar valores nulos. Como resultado, cuando intento guardar (1048, "Column ''last_login'' cannot be null") IntegrityError (1048, "Column ''last_login'' cannot be null") .

¿Cómo puedo arreglar esto? ¿Necesito cambiar manualmente el campo en la base de datos, o hay alguna forma de solucionarlo con migraciones?

Editar Cuando ejecuto python manage.py migrate --fake-initial la salida es la siguiente: Ejecutando migraciones:

Rendering model states... DONE Applying contenttypes.0001_initial... FAKED Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0001_initial... FAKED Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying core.0001_initial... FAKED Applying admin.0001_initial... FAKED Applying sessions.0001_initial... FAKED

Sin embargo, cuando busco en la base de datos todavía veo user_last_login como no-nulo.