从Django的url获取pk

时间:2018-04-24 11:41:29

标签: python html django

这是我用来获取链接中的项目pk的URL结构:

urls.py

path('categories/<int:item_category>/', views.item_category, name="item_category"),

views.py

def item_category(request, pk):
    item_category = get_object_or_404(Categories, pk=pk)
    ids = [self.kwargs.get('pk')]
    cat_id = Categories.objects.get(pk=ids)

    return render(request, 'items_modal.html', {'item_category': item_category,
                                                'cat_id': cat_id
                                                })

现在我想使用pk在新链接上获取结果 这是我的 HTML

  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">{{ cat_id }}</h5>

2 个答案:

答案 0 :(得分:3)

我认为你有几个错误。

  1. 更改网址:

    path('categories/<int:pk>/', views.item_category, name="item_category"),

  2. 您的功能令人困惑。您不希望变量与获取对象的函数具有相同的名称,而cat_id是对象而不是整数

    def item_category(request, pk): cat = get_object_or_404(Categories, pk= return render(request, 'items_modal.html', {'item_category': cat})

  3. 显示ID:

    <h5 class="modal-title" id="exampleModalLabel">< ahref="{% url 'item_category' item_category.id %}">{{ item_category }}</a></h5>

答案 1 :(得分:0)

更改网址

中的关键字
path('categories/<int:pk>/', views.item_category, name="item_category"),