Ошибка открытого шаблона раскрывающегося меню django - PullRequest
0 голосов
/ 15 января 2009

Мой общедоступный шаблон получает данные из Postgres в раскрывающееся меню. Шаблон отображает данные в выпадающем меню. Когда выбор активирован, возникает следующая ошибка:

commodity () принимает ровно 2 аргумента (1 дано)

Код шаблона, просмотры и URL находятся здесь:

http://dpaste.com/109411/

Ответы [ 5 ]

0 голосов
/ 15 января 2009

Я неправильно прочитал ваш первоначальный пост. Используйте исходное регулярное выражение и удалите параметр commodity_id из функции.

Теперь измените это:

commodity_id = request.POST['commodity'] 

к этому:

commodity_id = request.POST['commodity_id'] 

Теперь это должно работать.

0 голосов
/ 15 января 2009

Ваш URL должен быть:

^fsafety/commodity/(\d+)$

Или, если вы хотите именованное выражение:

^fsafety/commodity/(?P<commidity_id>\d+)$

У вас две основные проблемы. Во-первых, ваша группа commodity_id должна быть названа или пронумерована. (?P<group_name_here>\d+) является именованной группой, в то время как (\d+) является пронумерованной группой и захватывается на основе порядка. Во-вторых, вам нужно полностью указать URL-адреса, если вы не используете команду include() для включения файла urls.py другого приложения Django.

0 голосов
/ 15 января 2009

Ваш товарный вид ожидает индекс, и в URL не указывается ни один.

Измените ваш URL на:

(r'^commodity/(?P<commodity_id>\d+)$', 'commodity')

И вызвать его с помощью URL-адресов, таких как:

http://localhost:8000/commodity/5

С 5 - это захваченный идентификатор из URL.

0 голосов
/ 15 января 2009

Спасибо за помощь. По крайней мере, исходная ошибка не возникает, но ни одно из регулярных выражений не сработало. Ошибка, которую я получил, теперь такова:

Текущий URL, fsafety / commodity /, не соответствует ни одному из них. Вот это: ^ fsafety / ^ товары / (? P \ d +) $

По крайней мере, теперь я знаю, что ошибка в URL, но также возможно, что идентификатор не передается из формы? Данные не представлены до этого утверждения в форме:

{% для товара в товаре_листе%}

Спасибо, еще раз !!

Ана

0 голосов
/ 15 января 2009

Вы забыли добавить регулярное выражение в свой файл URL

(r'^commodity/(\d+)$', 'commodity'),

Посмотрите, работает ли это.

Edit: проверьте здесь для большего количества примеров http://docs.djangoproject.com/en/dev/topics/http/urls/#example

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