NoReverseMatch: Реверс для 'delete_url' с аргументами '('',)' не найден. Проверен 1 шаблон(ы): ['delete_url/(?P<web>[0-9]+)\\Z']

Здравствуйте, я получаю ошибку, когда запускаю свой код. Я пытаюсь создать функцию удаления на моей веб-странице.

Спасибо за ваше время.

Мой код выглядит следующим образом:

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 %}

urls.py

path('delete_url/<int:web>',views.delete_url,name="delete_url"),

views.py

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

models.py

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

1-option

Отредактируйте ваш 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-option

Отредактируйте ваш 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-option

Отредактируйте ваш 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 %}

в href: "{% url 'delete-url' id=web.id %}"

Проверьте, имеет ли переменная web значение в шаблоне. Вы уверены, что передаете не нулевое веб-значение в вызывающий контекст представления? Возможно, вы можете опубликовать код вызывающего представления

Вернуться на верх