Ошибка типа в / 10 my_view () получила неожиданный аргумент ключевого слова 'pk' - PullRequest
0 голосов
/ 14 января 2020

Я получаю ошибку типа 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> 

1 Ответ

0 голосов
/ 14 января 2020

Вы должны сообщить своему мнению, что параметр с именем 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 %}">

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