К сожалению, re.escape()
не подходит для заменяющей строки:
>>> re.sub('a', re.escape('_'), 'aa')
'\\_\\_'
Решение состоит в том, чтобы поместить замену в лямбда:
>>> re.sub('a', lambda _: '_', 'aa')
'__'
, потому что возвращаемое значение лямбда обрабатывается re.sub()
как литеральная строка.
Миграции впервые были добавлены в версии 1.7, официально выпущенной 2 сентября 2014 года. Вы должны убедиться, что ваше руководство соответствует версии Django, с которой вы работаете. Например, эта версия учебника охватывает 1.9:
https://docs.djangoproject.com/en/1.9/intro/tutorial01/
Или, если вы используете старую версию Django, вы можете изменить «1.9» в этом URL на любую версию, на которой вы находитесь (вернуться к 1.3). Или используйте раскрывающийся список на странице документов, чтобы выбрать версию и выполнить поиск по «учебнику».
Узнайте, какую версию django вы используете (, спасибо @BradyEmerso n):
python -c "import django; print(django.get_version())"
Если старше 1,8:
pip install --upgrade django
В django makemigration добавлен после 1.7, поэтому, если вы используете более старую версию Django, вам нужно изменить settings.py и добавить ваше приложение в установленное приложение, например
INSTALLED_APPS = (
'Demo',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
)
, а затем вы можете запустить команду
python manage.py syncdb
Я сделал следующее (для python версии 3.6.4), чтобы решить эту проблему:
Приветствия
Я использовал версию 1.9 и все еще получаю эту ошибку. У меня были непримененные миграции, и это было основной причиной в моем случае. Я побежал «python manage.py migrate
», чтобы применить их, и это сработало для меня.
Впервые я добавляю следующий фрагмент кода в файл имя_проекта \ settings.py.
`INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
#Django REST Framework
'rest_framework',
#Games application
'games.apps.GamesConfig',
]`
После сохранения, при запуске следующего кода я получил ошибку.
`python manage.py makemigrations games`
Затем я проверяю файл settings.py и понимаю, что есть два INSTALLED_APPS, а во втором нет следующих. Когда я добавил их, код работал.
`#Django REST Framework
'rest_framework',
#Games application
'games.apps.GamesConfig',`
Вам необходимо загрузить виртуальную среду, прежде чем делать это.
Используйте приведенный ниже код для Linux / OSX:
source venv/bin/active
И следующий код для Windows
source venv/Scripts/activate