![](/img/trans.png)
[英]How to access to URL parameter inside of get_queryset in Django?
[英]Django 2.0 url parameters in get_queryset
我想根據網址中的類別ID過濾子類別
對於恆定值,它可以毫無問題地工作
return Subcategory.objects.filter(category = 1)
views.py
class SubcategoriesListView(ListView):
model = Subcategory
template_name = 'app/categories/index.html'
def get_queryset(self):
return Subcategory.objects.filter(category = category_id)
urls.py
path('categories/<int:category_id>/', app.views.SubcategoriesListView.as_view(), name='subcategories'),
models.py
class Subcategory(models.Model):
title = models.CharField(max_length=30)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
追溯
未定義/ categories / 1 / name“category_id”中的NameError
get_queryset中的views.py返回Subcategory.objects.filter(category = category_id)
您可以分別使用self.args
(一個元組)和self.kwargs
(一個字典)在基於類的視圖中獲取URI位置和命名參數。
在這里,您將category_id
定義為命名參數,因此您可以使用self.kwargs['category_id']
獲取其對應的值:
class SubcategoriesListView(ListView):
model = Subcategory
template_name = 'app/categories/index.html'
def get_queryset(self):
return Subcategory.objects.filter(category_id=self.kwargs['category_id'])
由於id
是一個整數,因此您可以過濾category_id
,而不是category
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.