NoReverseMatch错误 - 我的 urls.py 一切看起来都很好,我做错了什么



不知道我做错了什么 - 我发誓它在几个小时前工作。

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

这是错误(6 是这种情况的具体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/$']

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

对我来说,

bet = get_object_or_404(Bet, pk=bet_id)

听起来 yor 对象的主键Bet名为bet_id。您可以考虑将{% url 'wager' bet.id %}更改为{% url 'wager' bet.bet_id %}吗?

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>

相关内容

最新更新