首先,请原谅我的英语,我是Django的新手,并且非常渴望学习。我用Python做了一年的事情。这就是我的经验。
我正在尝试使用表格列中列出的文章列表创建一个表格,而在其他列中,顶部有一些卖家的名称,然后每个列出了文章的价格卖家专栏及其各自的价格。
我在models.py中有这段代码
class Item(models.Model):
name = models.CharField(max_length=200)
class Seller(models.Model):
name = models.CharField(max_length=200)
class Price(models.Model):
item = models.ForeignKey(Item, on_delete=models.CASCADE)
seller = models.ForeignKey(Seller, on_delete=models.CASCADE)
price = models.CharField(max_length=10)
这是我的views.py
def index(request):
all_items = Item.objects.all()
sellers = Seller.objects.all()
prices = Price.objects.all()
return render(request, 'juegos/index.html',
{'all_items': all_items,
'sellers': sellers,
'prices': prices}
)
在模板中我有这个:
<table>
<thead>
<tr>
<th>Item</th>
{% for seller in sellers %}
<th>{{ seller.name }}</th>
{% endfor %}
</tr>
</thead>
<tbody>
{% for item in all_items %}
<tr>
<td>{{ item.name }}</td>
<!--I don't know how to list each price for each seller-->
{% endfor %}
</tr>
</tbody>
</table>
这是如何显示信息的示例:
当我在管理员中添加价格时,我只需从之前添加的商品中选择商品,然后从之前添加的卖家列表中选择卖家。 所以它就像一切都是相关的,但在制作这个表时我无法找到关联这些对象的方法。
我尝试了很多东西,但我开始觉得我在尝试随机的东西,所以我在这里。
任何提示都将受到赞赏。
编辑:我一直在想解决方案可能是在表格标题中迭代卖家名称,然后在表格主体中迭代每个项目的每个价格,按照标题交互的顺序,但我不知道我应该使用什么功能来执行此操作。
<table>
<thead>
<tr>
<th>Item</th>
{% for seller in sellers %}
<th>{{ seller.name }}</th>
{% endfor %}
</tr>
</thead>
<tbody>
{% for item in all_items %}
<tr>
<td>{{ item.name }}</td>
<!-- It would be cool if i could iterate trought sellers and just put the price like this:-->
{% for seller in sellers %}
{{ price }}
{% endfor %}
{% endfor %}
</tr>
</tbody>
</table>
答案 0 :(得分:0)
试试这个
{% for item in all_items %}
<tr>
<td>{{ item.name }}</td>
</tr>
{% for row in item.price_set.all %}
<tr>
<td>{{ row.price }}</td>
</tr>
{% endfor %}
{% endfor %}
答案 1 :(得分:0)
您只需要价格
{% for p in price %}
{{ p.item.neme }}
{{ p.seller.name }}
{{ p.price }} EUR
{% endfor %}
view.py
def index(request):
prices = Price.objects.all()
return render(request, 'juegos/index.html',
{'prices': prices}
)