Передача переменной Django в тег URL

Я использую Django 1.11. Я пытаюсь добавить ссылку на шаблон DeleteView из UpdateView. Вероятно, есть лучший способ добиться этого, чем то, как я пытаюсь, но я новичок в Django, и поэтому я пытаюсь использовать URL для направления на myapp/<pk>/delete/

У меня в шаблоне есть {% url 'calendar_delete' pk=event_id %}

В моей модели у меня есть

class Event(models.Model):
    event_id = models.AutoField(primary_key=True)

В моих URL у меня есть

url(r'^calendar/(?P<pk>\d+)/delete/$',views.CalendarDelete.as_view(),name='calendar_delete'),

С кодом, как указано выше, шаблон не отображается из-за исключения NoReverseMatch. '{'pk': ''}' не найден, поэтому он явно не выбирает event_id из модели. Когда я жестко закодирую число там, оно будет отображаться, и URL направит меня к шаблону DeleteView.

Может кто-нибудь посоветовать, как я могу получить <pk>/event_id в тег URL?

<pk> существует в URL-адресе шаблона UpdateView, и я также попытался извлечь его из URL-адреса как переменную и передать в тег URL-адреса. Я могу извлечь нормально, но не передать переменную.

Любая помощь по этому вопросу будет высоко ценится, в том числе советы о лучших методах для достижения желаемого результата, чем я иду вниз! Ура!

1 ответ

Решение

В UpdateView, вы должны иметь возможность доступа object в шаблоне.

{% url 'calendar_delete' pk=object.pk %}
Другие вопросы по тегам