Typeerror at/10 my_view() 有一个意外的关键字参数 'pk'



我收到一个类型错误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 %}">

相关内容

最新更新