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
значение в шаблоне.
Вы уверены, что передаете не нулевое веб-значение в вызывающий контекст представления?
Возможно, вы можете опубликовать код вызывающего представления