【问题标题】:django.urls.exceptions.NoReverseMatch: Reverse for 'drafts' with keyword arguments '{'pk': 3}' not found. 1django.urls.exceptions.NoReverseMatch:找不到带有关键字参数“{'pk':3}”的“草稿”。 1
【发布时间】:2021-06-19 03:49:12
【问题描述】:

我遇到错误

django.urls.exceptions.NoReverseMatch:未找到带有关键字参数“{'pk': 3}”的“草稿”的反向。 1

我为删除视图创建了一个按钮,但它不起作用。每当我单击按钮时,就会出现上述错误。

代码如下:

在views.py中

class DraftsView(ListView):
    model=models.NewPost
    context_object_name='newpost'

class DraftsEditView(DetailView):
    context_object_name='draft_view'
    model=models.NewPost
    template_name='blogapp/newpost_details.html'
    # pk_url_kwarg="id"

class DraftsUpdateView(UpdateView):
    fields=('Author','Title','Text')
    model=models.NewPost

class DraftsDeleteView(DeleteView):
    model=models.NewPost
    context_object_name='newpost'
    success_url=reverse_lazy("blogapp:drafts")

在 urls.py 中

urlpatterns=[url('about/',views.about,name='about'),
url('register/',views.register,name='register'),
url('user_login/',views.user_login,name='user_login'),
url('newpost/',views.NewPostView,name='newpost'),
url('drafts/',views.DraftsView.as_view(),name='drafts'),
path('<int:pk>',views.DraftsEditView.as_view(),name='view_draft'),
path('update/<int:pk>/',views.DraftsUpdateView.as_view(),name='update'),
path('delete/<int:pk>/',views.DraftsDeleteView.as_view(),name='delete')
]

在 newpost_details.html 中

 <a href="{% url 'blogapp:delete' pk=draft_view.pk %}"> <input class="btn btn-danger" type="text" name="" value="Delete"> </a>

在 newpost_confirm_delete.html 中

<form method="post">
    {% csrf_token %}
    <input type="submit" class="btn btn-danger" name="" value="Confirm Delete">
    <a href="{% url 'blogapp:drafts' pk=newpost.pk  %}"><input class="btn btn-primary"  type="text" name="" value="Cancel"></a>
  </form>

【问题讨论】:

  • edit 提出您的问题并展示您的观点DraftsDeleteView 及其呈现的模板。
  • AbdulAzizBarkat 我已编辑。现在您可以在 views.py 中看到 DraftsDleteView,它呈现的模板是 newpost_confirm_delete.py

标签: python django


【解决方案1】:

只需在 urls.py 中取消注释并编辑此行

path('drafts/<int:pk>/',views.DraftsEditView, name=‘drafts’),

【讨论】:

    猜你喜欢
    • 2019-07-10
    • 2018-09-08
    • 1970-01-01
    • 2020-11-16
    • 1970-01-01
    • 2019-08-06
    • 2019-10-03
    • 2012-12-05
    • 2017-06-17
    相关资源
    最近更新 更多