Передача переменной 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 %}