Django — ошибка при выполнении makemigrations?
1) В default ты запихиваешь РЕЗУЛЬТАТ функции, а не саму функцию. Т.о. дефолт значение у всех полей key_expires будет ровно то, когда ты сделал последний раз makemigrations. Кстати, makemigrations можно делать бесконечно, всегда будет что-то новенькое :)
2) Ты пытаешься DateTime полю присвоить дату. Для этого есть DateField.
3) Есть две огромные разницы между:import datetime
datetime.date.today()
иfrom datetime import datetime
datetime.date.today()
В первом случае ты из модуля datetime достаёшь класс date у которого есть метод today
Во втором случае ты у класса datetime достаёшь (якобы) классовый метод date и у него (якобы) должен быть метод today, чего, конечно же, нет.
4) На дворе середина 2016 года, люди давно переопределяют модели юзеров, а не костылят O2O. Почитай, хотя бы, здесь. То же касается и второго питона.
Решение твоей проблемы такое:key_expires = models.DateField(auto_now_add=True)
Вы передаёте в default= не callable-функцию, а её вычисленное значение на момент запуска программы. шибка в том, что в key_expires по умолчанию будут записываться дата запуска сервера. На следующий день работы это вчерашняя дата будет :)
если Вы напишете вот так:key_expires = models.DateTimeField(default=datetime.date.today)т.е. без скобочек, то приложение будет работать правильно. И миграции создадутся приятным бонусом.