2015-04-30 3 views
1

Имейте это HTML, что я хочу передать 2 аргумента в функцию, когда этот URL нажата:Джанго Url ошибка регулярных выражений NoReverseMatch

HTMLPage

{% for n in notifications %} 
        <li style="..."><b>{{ n.title }}</b> - {{ n.description }} 
        <a href="{% url 'update-notify-status' n.id n.title %}" >Don't show again</a> 
{% endfor %} 

urls.py

url(r'^notification_htmlv2/update_status/([0-9]{4})/([0-9]{4})$', 'Notifications.views.updateStatus', 
         name="update-notify-status"), 

views.py

def updateStatus(request,noteId,noteTile): 
q=History.objects.filter(notification_id=noteId,title=noteTile).order_by('-id')[0] 

WH При запуске программы появляется сообщение об ошибке «NoReverseMatch». Im следующий пример: https://docs.djangoproject.com/en/1.8/topics/http/urls/

обратное разрешение главы URL,

+0

n.title, вероятно, является строка, которая не будет сопровождаться ([0-9] {4}), вам нужно будет что-то вроде этого: [\ W -] + – Charl

ответ

1

Держу пари, ни n.id ни n.title матчи ([0-9]{4}).

Вы должны обновить свой шаблон URL, чтобы обрабатывать любые возможные значения id и title.

Что-то вроде:

r'^notification_htmlv2/update_status/([0-9]+)/([a-zA-Z0-9]+)$' 
+0

Ive добавил то, что вы предлагали, но продолжает давать эту ошибку. 'Reverse for 'update-notify-status' с аргументами '(4L, u'EUW') 'и аргументы ключевого слова' {} 'не найдены. 1 шаблон (ы): ['notification_htmlv2/update_status/([0-9] {4})/([a-zA-Z0-9] +) $'] ' –

+0

@Zecarlos Вы не заменили шаблон для 'id' (у вас все еще есть' ([0-9] {4}) ', я предложил' ([0-9] +) '),' {4} 'означает, что он соответствует только 4, длина вашего 'id' равна 1.« + »означает совпадение с одним символом или более. – aumo

+0

Теперь я понял, спасибо –

Смежные вопросы