Django-registration (1048, "The column" last_login "cannot be null")

I am trying to use django-registration in my simple project.

settings.py

# DJANGO REGISTRATION ACCOUNT_ACTIVATION_DAYS = 7 AUTH_USER_EMAIL_UNIQUE = True EMAIL_HOST = 'localhost' EMAIL_PORT = 1025 EMAIL_HOST_USER = '' EMAIL_HOST_PASSWORD = '' EMAIL_USE_TLS = False DEFAULT_FROM_EMAIL = ' example@gmail.com ' 

urls.py

 url(r'^accounts/', include('registration.backends.hmac.urls')), 

Registration Template:

 {% extends "index.html" %} {% block content %} <h1>Registration</h1> <form method="post" action=""> {% csrf_token %} <dl class="register"> {% for field in form %} <dt>{{ field.label_tag }}</dt> <dd class="clearfix">{{ field }} {% if field.help_text %}<div class="clearfix">{{ field.help_text }}</div>{% endif %} {% if field.errors %}<div class="myerrors clearfix">{{ field.errors }}</div>{% endif %} </dd> {% endfor %} </dl> <input type="submit" value="Sign Up" class="clearfix"> </form> {% endblock %} 

When I am about to register a new user, I get an error message:

 Django Version: 1.9c1 Exception Type: IntegrityError Exception Value: (1048, "Column 'last_login' cannot be null") 

I do not use the CustomUser model.

+5
source share
2 answers

Make sure you complete all migrations for the auth application. There is a migration 0005_alter_user_last_login_null.py that makes the last_login field optional.

+9
source

Go to your database (MySQL terminal):

$ mysql

mysql> SELECT * FROM django_migrations;

If you see some entries, alright. Remove them.

mysql> TRUNCATE TABLE django_migrations;

Leave the MySQL terminal and migrate to django again:

$ python manage.py migrate --fake-initial

Make sure this message appears:

0005_alter_user_last_login_null - [OK]

then you can see some other conflicts, this is normal, because we only need to perform this migration.

Reboot your MySQL and server, and you will be fine.

+4
source

Source: https://habr.com/ru/post/1236509/


All Articles