Ошибка NoReverseMatch - в моем urls.py все выглядит нормально, что я делаю не так - PullRequest
0 голосов
/ 19 января 2020

Понятия не имею, что я делаю неправильно - и клянусь, это работало несколько часов go.

urls.py:

urlpatterns = [
    path('create', views.create, name='create'),
    path('<int:bet_id>/', views.detail, name='detail'),
    path('<int:bet_id>/wager/', views.wager, name='wager'),
]

это ссылка на шаблон html: a href = "{% url 'wager' bet.id%}"

views.py:

def wager(request, bet_id):
    bet = get_object_or_404(Bet, pk=bet_id)
    return render (request, 'bets/wager.html', {'bet':bet})

А вот и ошибка (для этого случая указывается значение c bet_id)

NoReverseMatch at /bets/6/wager/
Reverse for 'wager' with no arguments not found. 1 pattern(s) tried: ['bets/(?P<bet_id>[0-9]+)/wager/$']

Ответы [ 3 ]

1 голос
/ 19 января 2020

Используйте не перекрывающийся шаблон в конфигурации URL-адреса

path('wage_list', views.list_view, name='wage_list'),
path('wage_detail/<int:bet_id>/', views.wage_detail_view, name='wage_detail_view'),

и вызовите в виде списка следующее, что приведет вас к подробному представлению

{% for obj in wage_list %}
<a href="{% url 'wage_detail_view' bet_id=obj.id %}">
{% endfor %}
0 голосов
/ 19 января 2020

urls.py :

urlpatterns = [
    path('create', views.create, name='create'),
    path('<int:bet_id>/', views.detail, name='detail'),
    path('wager/<int:pk>', views.wager, name='wager'),
]

views.py :

def wager(request, bet_id):
    bet = get_object_or_404(Bet, pk=bet_id)
    return render (request, 'bets/wager.html', {'bet':bet})

ставка. html:

<a href ="{% url 'wager' bet.id %}">Something</a>
0 голосов
/ 19 января 2020

Для меня

bet = get_object_or_404(Bet, pk=bet_id)

Звучит так, что первичный ключ для вашего Bet объекта называется bet_id. Можете ли вы рассмотреть вопрос об изменении {% url 'wager' bet.id %} на {% url 'wager' bet.bet_id %}?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...