我的問題是在 django 模板上水平顯示模型資料。我有一個名為“Main”的模型,有 3 列。當我在模板上顯示時,它看起來像這樣 -

我想按如下所示的類別過濾它-
Main.objects.filter(category='food')

我的目標是在模板上顯示類別名稱,價格水平顯示在帶有加號的一側。它應該看起來像這樣-
food= 8 10 11
我在模板和views.py上都嘗試了for...in回圈都失敗了。用 for 回圈嘗試了類似的方法 - print(f"{i.category}={i.price} ")。沒用。
output =f'{i.price} ' 帶有 for 回圈,將其保存在變數中并在模板上顯示該變數。這些不同的組合,都失敗了。
由于 = 主要用于整數,因此我嘗試使用 i.price 而不將其轉換為字串,但失敗了。
我在這里找到的關于“在 Django 模板上水平顯示模型資料”的大多數答案都是關于使用 css 并排顯示表單元素,我知道該怎么做,而不是我的問題。
誰能指出我正確的方向?
這是我的models.py
class Main(models.Model):
name = models.CharField(max_length = 60, blank = True)
category = models.CharField(max_length = 60, blank = True)
price = models.CharField(max_length = 60, blank = True)
def __str__(self):
return self.name
views.py -
def products(request):
products = Main.objects.all()
context = {'products':products}
return render(request, 'myapp/index.html', context)
和 HTML 模板 -
<div class="card card-body">
<table class="table">
<tr>
<th>Product</th>
<th>Category</th>
<th>Price</th>
</tr>
{% for i in products %}
<tr>
<td>{{i.name}}</td>
<td>{{i.category}}</td>
<td>{{i.price}}</td>
</tr>
{% endfor %}
</table>
</div>
不是整個模板,但你明白了。很基礎。
uj5u.com熱心網友回復:
你可以這樣做:
視圖.py:
def products(request):
foods = Main.objects.filter(category='food').values_lis('category', flat=True)
return render(request, 'myapp/index.html', {'foods': foods})
索引.html:
<div class="card card-body">
<p> food:
<span>
{% for food in foods %}
{{ food }} {% if not forloop.last %} {% endif %}
{% endfor %}
</span>
</p>
</div>
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/410978.html
標籤:
上一篇:Jinja2模板:輸出格式
