我正在学习Django
初级课程,但在修复视图和产品链接时遇到问题
NoReverseMatch at / Reverse for 'produto' with arguments '(1,)' not found. 1 pattern(s) tried: ['produto/<int:pk\\Z']
我真的不知道该怎么解决这个问题。
索引文件:
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Django 1 - Index</title>
</head>
<body>
<h2>{{curso}}</h2>
<h1>index</h1>
<table>
<thead>
<tr>
<th>Produto</th>
<th>Preço</th>
</tr>
</thead>
<tbody>
{% for produto in produtos %}
<tr>
<td><a href="{% url 'produto' produto.id %}">{{produto.nome}}</a></td>
<td>{{produto.preco}}</td>
</tr>
{% endfor %}
</tbody>
</table>
</body>
</html>
查看:
from django.shortcuts import render
from .models import Produto
def index(request):
produtos = Produto.objects.all()
context = {
'curso': 'Programação web com django',
'produtos': produtos
}
return render(request, 'index.html', context)
def contato(request):
return render(request, 'contato.html')
def produto(request, pk):
prod = Produto.objects.get(id=pk)
context = {
'produto': prod
}
return render(request, 'produto.html')
produto.html文件:
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Produto</title>
</head>
<body>
<h1>Produto</h1>
<table>
<thead>
<tr>
<th>Produto</th>
<th>Preço</th>
<th>Estoque</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="{% url 'index' %}">{{produto.nome}}</a></td>
<td>{{produto.preco}}</td>
<td>{{produto.estoque}}</td>
</tr>
</tbody>
</table>
</body>
</html>
错误信息:
我已经尝试将pk
更改为id
,但没有解决。
2条答案
按热度按时间z31licg01#
这可以帮助你,只需要关闭urls.py中的尖括号。
bxgwgixi2#
您需要更改索引中的标记,它应该是:
另外,请确保您的URL是正确的,就像这样: