django-user-account: нет такой таблицы: account_passwordhistory - PullRequest
0 голосов
/ 23 октября 2018

Есть много сообщений, связанных с django, с ошибкой «нет такой таблицы», но ни одно из них не пришло из модуля django-user-account.Я получаю эту ошибку

sqlite3.OperationalError: нет такой таблицы: account_passwordhistory

, и вот шаги:

Установлен django-user-учетные записи:

$ pip install django-user-accounts
Collecting django-user-accounts
  Downloading https://files.pythonhosted.org/packages/0c/4f/40f76395324d98b7f8717aad7e08ad6f86ba2714eb956be6070e0402988c/django_user_accounts-2.0.3-py2.py3-none-any.whl (106kB)
    100% |████████████████████████████████| 112kB 2.8MB/s
.
.
.
Installing collected packages: django-appconf, django-user-accounts
Successfully installed django-appconf-1.0.2 django-user-accounts-2.0.3

в settings.py добавлен

INSTALLED_APPS = [ . . .
    'django.contrib.sites',
    'account' ]

SITE_ID = 1

MIDDLEWARE = [
.
.
.
    'account.middleware.ExpiredPasswordMiddleware',
]

ACCOUNT_PASSWORD_USE_HISTORY = True
ACCOUNT_PASSWORD_EXPIRY = 60  # number of seconds

перезапустил сервер и запустил: $ python manage.py user_password_history

Я получил:

Traceback (most recent call last): 
File "/Users/ipozdnya/miniconda3/lib/python3.5/site-packages/django/db/backends/utils.py", line 65, in execute return self.cursor.execute(sql, params) 
File "/Users/someuser/miniconda3/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py", line 328, in execute return Database.Cursor.execute(self, query, params) 
sqlite3.OperationalError: no such table: account_passwordhistory

Я понимаю, что account_passwordhistory не был создан во время установки или какого-либо другого шага.$ python manage.py makemigrations утверждает, что No changes detected.Ничто в этом документе не говорит мне, что с этим делать: http://blog.pinaxproject.com/2016/11/22/how-configure-password-expiration-for-your-site/

Спасибо

1 Ответ

0 голосов
/ 23 октября 2018

Хорошо, моя проблема заключалась в том, что я доверял выводу $ python manage.py makemigrations, в котором указано, что No changes detected.Однако когда я запустил $ python manage.py migrate, он применил новую миграцию для таблиц account_passwordhistory и account_passwordexpire:

Applying account.0003_passwordexpiry_passwordhistory... OK

И эти таблицы находятся в БД.

Установка срока действия моего пароля через 1 секунду (python manage.py user_password_expiry my_user_name --expire 1), однако, не повлияла на функциональность сайта, но это другая проблема.

...