Django: URL не соответствует функции просмотра

#python #django

#python #django

Вопрос:

У меня мой URL определен следующим образом:

 (r'^article/edit/(.*)/$', 'mysite.views.edit_article')
  

И функция, определенная как:

 def edit_article(request, article_id):
  

Однако, похоже, что любой запрос на эту страницу приводит к передаче неправильного значения для article_id. Если я переопределю свой URL как

 (r'^article/(.*)/$', 'mysite.views.edit_article')
  

За вычетом «редактировать /» это, кажется, работает. Есть предложения о том, как это исправить?

Комментарии:

1. Какое «неправильное значение» вы получаете?

2. В чем это ошибка? Каково фактическое значение для article_id по сравнению с ожидаемым значением?

Ответ №1:

Попробуйте это:

 url (r'^article/edit/(?P<article_id>d )$', 'mysite.views.edit_article'),
  

Взгляните на именованные группы в документации Django

Комментарии:

1. Вам не нужно указывать имя параметра — если вы этого не сделаете, оно будет передано позиционно, первому аргументу в функции (после запроса). Поскольку его представление имеет только один дополнительный аргумент, оно должно работать в любом случае.