【问题标题】:NoReverseMatch: Reverse for 'delete_url' with arguments '('',)' not found. 1 pattern(s) tried: ['delete_url/(?P<web>[0-9]+)\\Z']NoReverseMatch: \'delete_url\' 的反向匹配没有找到参数 \'(\'\',)\'。尝试了 1 种模式:[\'delete_url/(?P<web>[0-9]+)\\\\Z\']
【发布时间】:2023-01-16 02:07:45
【问题描述】:

您好,我在运行代码时遇到错误。我正在尝试在我的网页上创建删除功能。

感谢您的时间。

我的代码如下:

home.html:错误在 href 标签中

{% for web in webs_list %}
                            <tr>
                            <th scope="row">
                                {{web.url.id}}
                            </th>
                            <td>
                                {{web.url.website}}
                                <a href="{% url 'delete-url' web.id %}" >
                                <button type="button" style="float: right;" class="btn btn-outline-danger">Delete</button>
                                </a>
                                <div class="space" ></div>
                                <button type="button" style="float: right;" class="btn btn-outline-primary" data-bs-toggle="modal" data-bs-target="#updateModal" >Update</button>
                            </td>
                            {% if web.status == "True"  %}
                            <td> <a class="btn btn-success">Up</a> </td>
                            {% else %}
                            <td> <a class="btn btn-danger">Down</a> </td>
                            {% endif %}
                            </tr>
                        {% endfor %}

网址.py

    from django.urls import path

from . import views

urlpatterns = [
    path('',views.home,name='home'),
    path('add_url',views.add_url,name='add-url'),
    path('search_url',views.search_url,name='search-url'),
    # path('update_url',views.update_url),
    path('delete_url/<int:web>',views.delete_url,name="delete_url"),
]

视图.py

def delete_url(request,web):
    url = Website.objects.get(pk=web)
    url.delete()
    return redirect('monitor/home.html')

模型.py

class Website(models.Model):
    website = models.CharField(max_length=250) 

【问题讨论】:

  • 尝试在 &lt;a href&gt; 中使用 delete_url 提及应用名称
  • 同时共享呈现此删除模板的视图。
  • @Uniquedesign 你是说我的 home.html 吗?
  • @meister 你在你的urls.py文件中使用app_name吗?
  • @Mubasharjaved 不,但我的重定向适用于我所有其他网址

标签: django django-urls django-url-reverse


【解决方案1】:

1-选项

编辑你的 urls.py

from django.urls import path
from . import views

app_name = 'your_app_name'
urlpatterns = [
    path('',views.home,name='home'),
    path('add_url',views.add_url,name='add-url'),
    path('search_url',views.search_url,name='search-url'),
    # path('update_url',views.update_url),
    path('delete_url/<int:web>',views.delete_url,name="delete_url"),

编辑您的 .html

{% for web in webs_list %}
                            <tr>
                            <th scope="row">
                                {{web.url.id}}
                            </th>
                            <td>
                                {{web.url.website}}
                                <a href="{% url 'your_app_name:delete-url' web.id %}" >
                                <button type="button" style="float: right;" class="btn btn-outline-danger">Delete</button>
                                </a>
                                <div class="space" ></div>
                                <button type="button" style="float: right;" class="btn btn-outline-primary" data-bs-toggle="modal" data-bs-target="#updateModal" >Update</button>
                            </td>
                            {% if web.status == "True"  %}
                            <td> <a class="btn btn-success">Up</a> </td>
                            {% else %}
                            <td> <a class="btn btn-danger">Down</a> </td>
                            {% endif %}
                            </tr>
                        {% endfor %}

2选项

编辑你的 urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('',views.home,name='home'),
    path('add_url',views.add_url,name='add-url'),
    path('search_url',views.search_url,name='search-url'),
    # path('update_url',views.update_url),
    path('delete_url/<int:pk>',views.delete_url,name="delete_url"),

编辑你的 views.py

def delete_url(request,pk):
    url = Website.objects.get(id=pk)
    url.delete()
    return redirect('monitor/home.html')

3选项

编辑你的 urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('',views.home,name='home'),
    path('add_url',views.add_url,name='add-url'),
    path('search_url',views.search_url,name='search-url'),
    # path('update_url',views.update_url),
    path('r'^delete_url/(?P<oid>[0-9]+)/$'',views.delete_url,name="delete_url"),

编辑您的 .html

{% for web in webs_list %}
                            <tr>
                            <th scope="row">
                                {{web.url.id}}
                            </th>
                            <td>
                                {{web.url.website}}
                                <a href="{% url 'your_app_name:delete-url' oid = web.id %}" >
                                <button type="button" style="float: right;" class="btn btn-outline-danger">Delete</button>
                                </a>
                                <div class="space" ></div>
                                <button type="button" style="float: right;" class="btn btn-outline-primary" data-bs-toggle="modal" data-bs-target="#updateModal" >Update</button>
                            </td>
                            {% if web.status == "True"  %}
                            <td> <a class="btn btn-success">Up</a> </td>
                            {% else %}
                            <td> <a class="btn btn-danger">Down</a> </td>
                            {% endif %}
                            </tr>
                        {% endfor %}

【讨论】:

  • 或尝试将您的delete_url 路径转换为字符串,例如path('delete_url/&lt;str:pk&gt;',views.delete_url,name="delete_url")
【解决方案2】:

在 href:“{% url 'delete-url' id=web.id %}”

【讨论】:

    猜你喜欢
    • 2021-05-11
    • 2019-05-10
    • 1970-01-01
    • 1970-01-01
    • 2020-10-21
    • 2022-08-05
    • 2017-11-05
    • 1970-01-01
    • 2019-09-07
    相关资源
    最近更新 更多