Django url NoReverseMatch - пропущенный аргумент - PullRequest
0 голосов
/ 27 апреля 2020

У меня более-менее рабочий комментарий и система редактирования комментариев. Однако, когда я настроил все так, чтобы правильный URL-адрес пользователя возвращался к URL в моем UpdateView, он разрывал ссылку, переходящую от страницы индекса к деталям (именно в деталях отображаются комментарии, доступ к форме комментариев и форме просмотра обновлений). Вот мой код с неработающим URL

urlpatterns = [
    # ex: /restaurants/
    path('', views.index, name='index'),

    # ex: /restaurants/15
    path('<int:restaurant_id>/', views.details, name='details'),

    path('/edit/review/<int:userreview_id>', views.EditReview.as_view(), name='edit-review'),
]

Просмотр сведений

def details(request, restaurant_id):
    # calling restaurant ID and displaying it's data
    restaurant = get_object_or_404(Restaurant, pk=restaurant_id)
    # calling a review and displaying it's data
    user_review_list = UserReview.objects.filter(pk=restaurant_id)
    user_reviews = []
    for user_review in user_review_list:
        if user_review.posted_by == request.user:
            user_reviews.append({"user_review_grade": user_review.user_review_grade,
                                 "user_review_comment": user_review.user_review_comment,
                                 "posted_by": user_review.posted_by,
                                 "edit": user_review.get_edit_url})
        else:
            user_reviews.append({"user_review_grade": user_review.user_review_grade,
                                 "user_review_comment": user_review.user_review_comment,
                                 "posted_by": user_review.posted_by})

    return render(request, 'restaurants/details.html', {'restaurant': restaurant,
                                                        'user_review_list': user_reviews,})

шаблон индекса

{% extends "base_generic.html" %}

{% block content %}
<h1>Restauracje Poznan</h1>
<p>
Search by name or city
<form action="{% url 'restaurants:search_results' %}" method="get" class="form-inline">
    <div class="form-group mx-sm-3 mb-2">
        <input name="q" type="text" placeholder="Search...">
    </div>
    <div>
        <input type="submit" class="btn btn-primary mb-2"  value="Search">
    </div>
</form>
</p>
<h2>Restaurants and other gastronomy places:</h2>
    {% if restaurants_list %}
    <ul class="list-group">
        {% for restaurant in restaurants_list %}
        <li class="list-group-item"><a href="{% url 'restaurants:details' restaurant.id %}">
            {{ restaurant.restaurant_category  }} - {{ restaurant.restaurant_name }}, {{ restaurant.restaurant_city }} - {{ restaurant.restaurant_cuisine_type }}
            </a>
        </li>
        {% endfor %}
    </ul>
    {% else %}
    <p>No restaurants have been registered yet, do you want <a href="{% url 'restaurants:NewRestaurant' %}">register yours?</a></p>
    {% endif %}
{% endblock %}

шаблон сведений

{% extends "base_generic.html" %}

{% block content %}
<h1>My restaurant's review web page</h1>
<h2>{{restaurant.restaurant_name}}</h2>
<div class="container">
    <div class="row">
        <div class="col-sm">
            <p>
                Average Grade:<br>
                <span><b>PLACEHOLDER</b></span>
            </p>
        </div>
        <div class="col-sm">
            <p>
                Type of place:<br>
                {{restaurant.restaurant_category}}<br>
                Cuisine type: <br>
                {{restaurant.restaurant_cuisine_type}}
            <p>
        </div>
        <div class="col-sm">
            <p>
                Additional info: <br>
                Address: {{restaurant.restaurant_street_number}} {{restaurant.restaurant_address}},
                {{restaurant.restaurant_city}}<br>
                Website: <a href="{{restaurant.restaurant_website_link}}" target="_blank">
                {{restaurant.restaurant_website_link}}</a><br>

            </p>
        </div>
    </div>
</div>

<h3>Reviews:</h3>
{% for userreview in restaurant.userreview_set.all %}
<ul>
    <li>
        Grade: {{ userreview.user_review_grade }}/5<br>
        {{ userreview.user_review_comment }}<br>
        {{ userreview.posted_by|capfirst }}
        {% for userreview in user_review_list %}
        {% if userreview.edit %}<a href="{% url 'restaurants:edit-review' userreview.id %}">
        Edit</a>{% endif %}<br>
        {% endfor %}
        </ul>
</ul>
{% endfor %}

<p><a href="/restaurants/{{ restaurant.id }}/reviewing">Write a review for this restaurant</a> </p>
<p><a href="{% url 'restaurants:index' %}">Back to the main page</a> </p>
{% endblock %}

Нет Независимо от того, как я его включаю, я всегда получаю ошибку типа «Нет обратного соответствия» или что-то в этом роде. Я знаю, что должен найти способ передать pk на URL-адрес, но я совершенно не могу найти, где ... У вас, ребята, есть идея, что я был бы очень рад :) Ошибка: Обратный для 'edit-review' с аргументами '('',)' не найдено. Попробован 1 шаблон (ов): ['restaurant // edit / review / (? P [0-9] +) $']

PS: OF C Я просмотрел уже опубликованные вопросы, но не смог ' Не могу найти ни одной недавней версии с Django

...