簡體   English   中英

get_queryset中的Django 2.0 url參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM