我有這本用于類別的字典,它是元組中的元組,但是我只想隔離文字 --> 類別名稱
from django.db import models
CATEGORIES = (
('a', 'Clothing'),
('b', 'Electronics'),
('c', 'Furniture'),
('d', 'Kitchen'),
('e', 'Miscellaneous'),
('f', 'None'),
)
但在一個不同的檔案中,views.py 是這個
def show_category_listings(request, category):
listings = Listing.objects.filter(category__in = category[0])
cat = dict(CATEGORIES)
return render(request, 'auctions/categSpecific.html', {
"listings": listings,
"category": cat[category]
})
最后在 html 中是這個,
<li>Category: {{ listing.category }}</li>
但我看到的只是字母而不是html中的名稱
有沒有辦法只獲取類別名稱?我無法弄清楚 views.py 部分中值的傳遞。
uj5u.com熱心網友回復:
Django 中有一些神奇的方法。一種是get_FOO_display (),它以人類可讀的格式顯示欄位值。
下一個代碼在 choiceField 中顯示名稱值。
<li>Category: {{ listing.get_category_display }}</li>
在此處閱讀檔案:https : //docs.djangoproject.com/en/3.2/ref/models/instances/#django.db.models.Model.get_FOO_display
uj5u.com熱心網友回復:
在模板中傳遞這個?
"category_names" : [ x[1] for x in CATEGORIES]
甚至
"category_lookup" : { x[0]:x[1] for x in CATEGORIES }
另請參閱檔案 (get_FOO_display() )。Django 模型包括將模型欄位值轉換為人類可讀形式的方法。您可以從模板呼叫此模型方法作為
{{ instance.get_fieldname_display }}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/355094.html
