我收到一个类型错误my_view((得到一个意外的关键字参数'pk'
views.py:
def my_view(request):
prod = get_object_or_404(Products, pk=1)
context = {
'prod': prod,
}
return render(request, 'title.html', context)
urls.py:
urlpatterns = [
path('search/', views.search, name='search'),
path('<int:pk>', views.my_view, name='my_view'),
path('', views.index),
]
搜索时的模板:
{% if results.products %}
{% for product in results.products %}
<div class="col-sm-{% column_width results.products %} pb-5">
<div class="card">
<div class="card-header bg-default" align="center">
<b>{{product.title}}</b>
</div>
<div class="card-body">
<a href="{% url 'my_view' product.id %}">{{
product.Author }}</a>
<p>{{ product.description|striptags }}</p>
<h6 class="btn btn-primary btn-large">
{{product.price}}</h6>
</div>
</div>
</div>
{% endfor %}
{% endif %}
单击其中一个搜索时要呈现的模板:
<div class="row">
<div class="col-md-12">
<div class="jumbotron">
<h2>{{ prod.title }}</h2>
<p>{{ prod.description }}</p>
<h6 class="btn btn-primary btn-large">{{judi.price}}</h6>
<h6 style="float: right;">{{judi.modified_date}}</h6>
</div>
</div>
</div>
你需要告诉你的 查看该参数,名为pk
的参数将随请求一起出现。 您需要更改:
def my_view(request):
与def my_view(request, pk)
此外,在您的urls.py
中,您需要提供视图的路径,当前路径缺少路径字符串。您需要替换:
path('<int:pk>', views.my_view, name='my_view')
:
path('my_view/<int:pk>', views.my_view, name='my_view')
同样在您的模板中替换:
<a href="{% url 'my_view' product.id %}">
<a href="{% url 'my_view' pk=product.id %}">