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á ejecutarmakemigrationsy 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.