亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Django 模板 - 過濾內容

Django 模板 - 過濾內容

素胚勾勒不出你 2023-09-19 14:07:37
我有兩個模型 - “產品”和“類別”,每個產品都可以添加到現有類別中。我正在嘗試找到一種方法來呈現包含按類別過濾的產品的頁面。目前,我通過在模板中手動過濾每個類別來完成此操作:{% for instance in object_list %}    {% if instance.category.categoryname == "Statues" %}        {{ instance.name }}        {{ instance.description }}        {{ instance.price }}    {% endif %}{% endfor %}我對每個類別(“繪畫”、“珠寶”等)都有相同的模板,并更改了每個模板中的條件。URL“../Statues”指向預先存在的模板有什么辦法可以更輕松地做到這一點嗎?我希望 從 URL 導入條件{% if instance.category.categoryname == "Statues" %} 。因此,當您訪問“../Jewelry”時,模板將從 URL 導入“Jewelry”并相應地過濾內容。models.pyclass Category(models.Model):    categoryname = models.CharField(max_length=20)    description = models.CharField(max_length=200, blank=True, null=True)    #To make in name, not objXXX    def __str__(self):        return self.categorynameclass Product(models.Model):    name = models.CharField(max_length=20)    image = models.ImageField(upload_to='static/photos', default='http://placehold.it/700x400')    description = models.TextField(max_length=200, blank=True, null=True)    price = models.DecimalField(decimal_places=2, max_digits=10)    category = models.ForeignKey(Category, on_delete=models.PROTECT, blank=True, null=True)    #To make in name, not objXXX    def __str__(self):        return self.nameurls.pyurlpatterns = [    path('admin/', admin.site.urls),    path('<str:categoryname>', category_filter)]view.pydef category_filter(request, categoryname):    queryset = Product.objects.all()    context = {"object_list": queryset}    return render(request, "category_filter.html", context)類別選擇模板:{% for instance in category_list %}<a href="{{ instance.categoryname }}" class="list-group-item">{{ instance.categoryname }}</a>{% endfor %}
查看完整描述

1 回答

?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

這可能太簡單了......您可以在視圖中應用過濾器并基于此發送查詢集:


def category_filter(request, categoryname):

    category=Category.objects.get(categoryname=categoryname)   

    queryset = Product.objects.filter(category=category)

    context = {"product_list": queryset}

    return render(request, "category_filter.html", context)


查看完整回答
反對 回復 2023-09-19
  • 1 回答
  • 0 關注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號