Django: NoReverseMatch для HttpResponseRedirect - PullRequest
       1

Django: NoReverseMatch для HttpResponseRedirect

0 голосов
/ 27 сентября 2011

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

Я попытался:

            return HttpResponseRedirect(reverse('emr.main.views.viewprofile', args=(profile.id,)))

Ну, это работает нормально, но на производственном хосте я должен изменить emr.main.view.viewprofile на myproject.main.views.viewprofile!потому что сам viewprofile не работает

, тогда я получил синтаксическую ошибку шаблона:

Значение исключения TemplateSyntaxError: Caught NoReverseMatch при рендеринге: обратное для main.views.add_record с аргументами47L,) 'и аргументы ключевого слова' {} 'не найдены.

main.view.add_comment, являющийся URL-тегом Добавить запись

как решить эту проблему?

url.py

    (r'^add/record/(?P<patient_id>\d+)/?$', add_record),
(r'^add/current/(?P<patient_id>\d+)/?$', add_current),

Редактировать:

Основные проблемы:

  1. При именовании приложения / представлений необходимо переименовать все файлы, чтобы исправитьэто для разработки вместо emr.main.views.add_records в myproject.main.views .., так как сама функция не работает
  2. теги URL, такие как {% url main.views.add_record profile.id%} все ещевозвращая ошибки ..

Ответы [ 2 ]

1 голос
/ 27 сентября 2011

Я думаю, что вам лучше всего использовать именованные URL-адреса, поскольку это звучит как проблема с путями Python в ваших представлениях.

См. https://docs.djangoproject.com/en/1.3/topics/http/urls/#url

Также было бы полезно, если бы вы опубликовали свой конфигурационный файл urls.py.

1 голос
/ 27 сентября 2011

Вы передаете кортеж reverse(), тогда как функция ожидает список.

Вместо этого попробуйте args=[profile.id].

Однако на это трудно ответитьправильно, не видя определения функции (или хотя бы подписи) для функции viewprofile().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...