django - 在网页上显示 Django 外键
问题描述
我有三个模型。
class Supplier(models.Model):
name = models.CharField(max_length=200, null=True)
class Order(models.Model):
supplier = models.ForeignKey(Supplier, on_delete=models.CASCADE)
class Product(models.Model):
supplier = models.ForeignKey(Supplier, on_delete=models.CASCADE, null=True, blank=True)
on_order = models.ForeignKey(Order, on_delete=models.CASCADE, null=True, blank=True)
我可以显示给定订单的所有产品的表格。但是,我似乎无法在 html 页面上呈现该供应商的名称,例如<h4> Supplier: {{order.supplier}}</h4>
这是视图:
def PurchaseOrder(request, pk_order):
orders = Order.objects.get(id=pk_order)
products = Product.objects.filter(
on_order_id=pk_order).prefetch_related('on_order')
total_products = products.count()
supplier = Product.objects.filter(on_order_id=pk_order).prefetch_related('on_order')
context = {
'supplier': supplier,
'products': products,
'orders': orders,
'total_products': total_products, }
return render(request, 'crmapp/purchase_order.html', context)
这是我的模板:
{% extends 'crmapp/base.html' %}
{% load static %}
{% block content %}
<div class='main-site>'>
<h4> Supplier: {order.supplier}}</h4> **<----Does not work**
<h5>Order Number: {{order.id}}</h5> **<----Does not work**
<h5>Created on: {{order.date_created | date:"d/m/Y"}}</h5> **<----Does not work**
<h6>Total Items on Order: {{total_products}}</h6>
<input type="search" placeholder="Search any field..." class="form-control search-input" data-table="customers-list"/>
<table class="table table js-sort-table mt32 customers-list" id='myTable'>
<thead class="table" >
<tr>
<th class='header' onclick="sortTable(0)" scope="col">ID</th>
<th class='header' onclick="sortTable(1)" scope="col">Description</th>
<th class='header' onclick="sortTable(2)" scope="col">Cost</th>
<th class='header' onclick="sortTable(3)" scope="col">Order Quantity</th>
</tr>
</thead>
<tbody>
<tr>
{% for product in products %}
<td> <a href="{% url 'productpage' product.id %}">{{product.id}}</a></td>
<td><h6><strong>{{product.description}}</strong></h6></td>
<td>£{{product.costprice |floatformat:2}}</td>
<td>{{product.on_order_quantity |floatformat:0}}</td>
</tr>
</tbody>
{% endfor %}
{% 端块 %}
我已经很努力了……并没有走得很远。请帮忙...
解决方案
在上下文中你写“订单”,但在模板中你要求“订单”,这是没有定义的。尝试
<h4> Supplier: {{orders.supplier}}</h4>
推荐阅读
- r - 用 stringr 提取更大的字符数据体?
- javascript - 如何获得更改输入值的差异?
- python - 字典理解值是列表
- reactjs - 如何根据另一个 Select 值过滤 Select
- reactjs - Shopify - 通过 API 通过联系页面接收电子邮件
- java - 如何序列化特定的json格式
- javascript - 如何从扩展弹出窗口中检测浏览器屏幕大小
- powershell - 使用 PowerShell 更新 T-SQL 始终加密的列
- powershell - 使用 PowerShell 更新用户的 Microsoft 个人资料图片
- python - 仅获取特定公会的信息