django-comments-xtd недоступен с трясогузкой? Как устранить неполадки?

Я установил django-comments-xtd, следуя краткому руководству в документации здесь.

Когда я перехожу к URL-адресу /comments, я получаю только ошибку 404 и сообщение «Поднято: wagtail.wagtailcore.views.serve».

Я без проблем следовал документации и установил другие приложения, которые отлично работают, такие как django-machina.

Я использую django 1.11.13, python 2.7 и django-comments-xtd 2.1.0.

Почему этот конкретный URL-адрес недоступен? Шаблоны существуют в правильном месте.

Мои файлы настроены точно так же, как в документации, рад предоставить дополнительную информацию, но не уверен, что предоставить прямо сейчас.

Что я могу сделать, чтобы попытаться устранить проблему?


person Jake Rankin    schedule 14.06.2018    source источник
comment
Я не знаю django-comments-xtd. Но есть две очевидные вещи, которые вы можете проверить. 1. Является ли django-comments-xtd перед приложениями трясогузки и после вашего приложения в установленных приложениях? 2. Является ли URL-адрес django-comments-xtd перед URL-адресом трясогузки?   -  person allcaps    schedule 14.06.2018
comment
Спасибо за ваши предложения, но это не так просто. Все комментарии идут перед трясогузками во всех случаях.   -  person Jake Rankin    schedule 14.06.2018
comment
@Zev спасибо за дальнейшее расследование. Каким был бы способ сделать плохой обходной путь? Может быть, поставить это как ответ, так как это может быть лучшим решением?   -  person Jake Rankin    schedule 17.06.2018
comment
Я не думаю, что я должен быть привязан к Python2 по какой-либо причине... был бы признателен за дополнительную информацию, спасибо за вашу помощь.   -  person Jake Rankin    schedule 17.06.2018
comment
@Zev Я обновил свой проект до трясогузки 2.1 и python 3.6, и он работает нормально, однако я получаю ту же самую ошибку/проблему при попытке доступа к комментариям. Думаете дело не в версии?   -  person Jake Rankin    schedule 18.06.2018


Ответы (3)


Я думаю, что вы неправильно читаете документацию, и на самом деле у вас нет проблемы. Он просто говорит:

смонтировать шаблоны URL django_comments_xtd по пути /comments/

Это не говорит о том, что вы должны получить доступ к этому URL. Тот факт, что, согласно вашему комментарию, вы не получаете 404 при доступе к /comments/sent/, указывает на то, что вы правильно настроили django-comments-xtd.

Чтобы /comments/ был допустимым URL-адресом, включенный вами django_comments_xtd.urls должен содержать пустой шаблон URL-адреса, например:

url('', some_view)

Если вы посмотрите на urls.py из django-comments-xtd, вы увидите, что он действительно включает urls.py из django-contrib-comments, но это не определяет пустой шаблон URL. Таким образом, нет шаблона URL, который соответствовал бы /comments/.

person Daniel Hepper    schedule 21.06.2018
comment
Когда я пытался понять это, я ожидал, что Django справится с 404, а не Wagtail. Таким образом, Django будет перечислять API комментариев, таких как: Using the URLconf defined in sandbox.urls, Django tried these URL patterns, in this order: 1. ^comments/ ^sent/$ [name='comments-xtd-sent'] 2. ^comments/ ^sent\.(?P<format>[a-z0-9]+)/?$ [name='comments-xtd-sent'] 3. ^comments/ ^confirm/(?P<key>[^/]+)/$ [name='comments-xtd-confirm'] 4. ^comments/ ^confirm/(?P<key>[^/]+)\.(?P<format>[a-z0-9]+)/?$ [name='comments-xtd-confirm'] - person Zev; 21.06.2018
comment
Джейку придется ответить за себя, но если пригороды работают, то они определены, возможно, вопрос не так важен, как я думал. Тем не менее, я все еще хотел бы выяснить, как заставить трясогузку полностью игнорировать папку (скажем, у меня была пользовательская страница 404 для трясогузки и пользовательская страница для комментариев/, и я хотел выбрать, какую из них отображать). Кроме того, я считаю, что список шаблонов URL-адресов, которые django пробовал, полезен для отладки и кодирования (а не для производства, где он все равно не будет отображаться). - person Zev; 21.06.2018
comment
Кроме того, comment/api/feedback/ может быть лучшим URL-адресом для Jake, потому что comment/sent ожидает более сложный запрос, чем просто отображение страницы. - person Zev; 21.06.2018
comment
@Zev 1. Если представление возвращает 404, Django не будет отображать шаблоны URL, потому что на самом деле был соответствующий шаблон URL. пакет django-extensions предоставляет файл show_urls, которая может помочь в этом случае. 2. Вам придется исключить URL-адрес из шаблона URL-адреса, если вы не хотите, чтобы он обрабатывался трясогузкой, например. r"^(?!comments/)". 3. вы правы, но /comments/sent/ надо хоть что-то делать, а не заниматься трясогузкой - person Daniel Hepper; 21.06.2018
comment
Хммм, я пробовал выражения регулярных выражений, чтобы исключить комментарии, но, должно быть, я сделал это неправильно, потому что это работает. Кажется, я пропустил ^. Можете ли вы отредактировать свой ответ, чтобы включить это? - person Zev; 21.06.2018
comment
Для меня нет разницы, опускать или включать косую черту, и если я ее опускаю, кажется, что Chrome добавляет ее. Получение /comments для отображения — это последний шаг в документации по установке и настройке django-comments-xtd. доступ к /comments/sent выдает ошибку BadSignature, а /comments/api/feedback/ выдает ошибку «шаблон не найден», похоже, что он ищет файлы остальных фреймворков. - person Jake Rankin; 21.06.2018
comment
@ Джейк, да, я ошибся насчет косой черты в конце, это не имеет значения. Но я настаиваю на том, что /comments/ просто недопустимый URL. Я переформулировал свой ответ, надеясь, что теперь он имеет для вас больше смысла. - person Daniel Hepper; 21.06.2018
comment
Спасибо за это... какая досадная ошибка, я все еще изучаю все это с нуля, правда думал, что должен был перейти в /comments. @Zev Спасибо за вашу помощь, и я сожалею, что потратил ваше время и баллы за награду. - person Jake Rankin; 22.06.2018
comment
@JakeRankin не беспокойтесь, иногда вы не видите леса за деревом, и вам нужен внешний вклад, чтобы преодолеть это. Насколько я могу судить, это все равно произойдет после десяти лет профессионального опыта;) - person Daniel Hepper; 22.06.2018

Определение URL-адреса из django-comments-xtd должно стоять перед определением трясогузки (т. е. url(r'', include(wagtail_urls))), так как оно действует как улов и, следовательно, сделает другие URL-адреса недоступными.

person Loïc Teixeira    schedule 14.06.2018
comment
Это перед вводом URL-адреса трясогузки. У меня это сразу после моей записи на форуме, которая работает нормально, обе перед записью о трясогузке. - person Jake Rankin; 14.06.2018

просто пища для размышлений. Шаблон подтверждения электронной почты использует

<a href="http://{{ site.domain }}{{ confirmation_url }}">http://{{ site.domain }}{{ confirmation_url|slice:":40" }}...</a>

Вы хотите убедиться, что ваш site.domain соответствует тому, что вы используете для разработки. Это только что исправило эту ошибку для меня. У меня была другая настройка домена в Django Admin

person kollinsayz    schedule 29.06.2020