NoReverseMatch в / ресторан / еда / 9 / редактировать / в Django - PullRequest
0 голосов
/ 16 мая 2018

Я создал функцию restaurant_delete_meal для удаления объекта еды. Когда я запускаю ссылку restaurant/meal/id/delete, функция работает и удаляет объект. Но когда я пытаюсь добавить кнопку на странице редактирования еды с помощью функции удаления ссылки и пытаюсь открыть страницу редактирования еды, появляется сообщение об ошибке

NoReverseMatch at /restaurant/meal/9/edit/
Reverse for 'restaurant-delete-meal' with arguments '('',)' not found. 
1 pattern(s) tried: ['restaurant/meal/(?P<meal_id>\\d+)/delete/$']
Request Method: GET
Request URL:    http://127.0.0.1:8000/restaurant/meal/9/edit/
Django Version: 1.11
Exception Type: NoReverseMatch
Exception Value:    
Reverse for 'restaurant-delete-meal' with arguments '('',)' not found. 
1 pattern(s) tried: ['restaurant/meal/(?P<meal_id>\\d+)/delete/$']
Exception Location:  
/Users/mickael/Desktop/myvirtualenv/foodtasker/lib/python3.6/site- 
packages/django/urls/resolvers.py in _reverse_with_prefix, line 497
Python Executable:   
/Users/mickael/Desktop/myvirtualenv/foodtasker/bin/python
Python Version: 3.6.5
Python Path:    
['/Users/mickael/Desktop/foodtasker',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python36.zip',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib- 
dynload',
'/Users/mickael/Desktop/myvirtualenv/foodtasker/lib/python3.6/site- 
packages']
Server time:    Wed, 16 May 2018 11:16:53 +0000
Error during template rendering
In template 
/Users/mickael/Desktop/foodtasker/foodtaskerapp/templates/base.html, 
error at line 25

Reverse for 'restaurant-delete-meal' with arguments '('',)' not found. 
1 pattern(s) tried: ['restaurant/meal/(?P<meal_id>\\d+)/delete/$']

Я импортировал все виды. Страница редактирования еды, где я пытаюсь установить кнопку удаления:

 [views.py][1]
 [urls.py][2]
 [edit-meal.html][3]

Views.py

    def restaurant_delete_meal(request, meal_id):
        instance = get_object_or_404(Meal, id=meal_id)
        instance.delete()
        messages.success(request, "DELETED")
        return redirect(restaurant_meal)

edit_meal.html, когда я пытаюсь установить кнопку

       {% extends 'restaurant/base.html' %}
       {% load bootstrap3 %}

       {% block page %}



<div class="col-lg-offset-2 col-lg-8">
    <div class="panel">
        <div class="panel-heading bg-blue">
            <h4 class="panel-title text-center text-white">
                Edit Meal
            </h4>
        </div>
        <div class="panel-body">
            <form method="POST" enctype="multipart/form-data">
                {% csrf_token %}
                {% bootstrap_form form %}
                <button type="submit" class="btn btn-pink">Update</button>

            </form>
          <button type="button" class="btn btn-pink" id="right-panel-link" href="{% url 'restaurant-delete-meal' meal.id %}">Add</button>
        </div>
    </div>
</div>

     {% endblock %}

urls.py

 url(r'^restaurant/meal/(?P<meal_id>\d+)/delete/$', 
 views.restaurant_delete_meal, name = 'restaurant-delete-meal'),
...