Описание
Использование учебника, найденного здесь: http://docs.django-cms.org/en/latest/introduction/05-apphooks.html. До шага 5 не было никаких серьезных проблем. Однако при выполнении шагов в шаге 5 появляется следующая ошибка:
django .urls.exceptions.NoReverseMatch: 'polls' не является зарегистрированным пространством имен
Снимок экрана доступен здесь: https://imgur.com/6i0hnTG.
Это после завершения шага 5.1.3 Restart the runserver
.
Сайт снова будет работать правильно только в том случае, если я go вернусь и повторно добавьте опросы в urls.py (который был удален на шаге 4!):
urlpatterns += i18n_patterns(
url(r'^admin/', admin.site.urls),
### Huhhhhh? According to tutorial (#4), this line of code should be removed!!!
url(r'^', include('polls.urls', namespace="polls")),
url(r'^', include('cms.urls')),
)
Шаги для воспроизведения
Выполнено руководство до шага 5.1.3.
Ожидаемое поведение
Не должно вызывать 500.
Фактическое поведение
Причины 500.
Дополнительная информация
Любая страница со следующим вызывает ошибку 500:
<form action="{% url 'polls:vote' instance.poll.id %}" method="post">
Однако я также могу добавить обратно в urls.py следующее, что частично исправляет ошибку (возможно ??), хотя я считаю, что это не цель учебника документации:
url(r'^', include('polls.urls', namespace="polls"))
Но сайт все еще испытывает Оме 404 и 500, связанные с приложением Опросы. Например, в 8-й части учебного пособия при создании нового опроса с помощью мастера возникает следующая ошибка (https://imgur.com/gallery/SvqqHkS).
Также возникли некоторые другие проблемы в часть 4 и часть 8 учебника.
В части 4 есть ошибка on_delete
, которая исправляется добавлением следующего аргумента к вызову функции models.ForeignKey
:
poll = models.ForeignKey(Poll, on_delete=models.CASCADE)
Среда:
Python версия: 3.7.6 (учебник рекомендует 3.6)
Django версия: 2.2.11
django CMS версия: 3.7.1