python - 上下文`Order.Items`没有出现在来自Django Admin的PDF文件中
问题描述
你好,
我正在尝试向我的管理员添加一项功能,我可以在其中从 PDF 文件下载订单详细信息,到目前为止,该文件已经成功,除了 Order.Model 没有完全出现。
所以我有 3 个模型Item
:OrderItem
和Order
。与Order
具有多对多关系,OrderItem
并且与OrderItem
具有外键Item
。
在模板中,我试图在Order.Items
which is之间循环,items = models.ManyToManyField(OrderItem)
但它没有呈现任何数据。
这是models.py
class Item(models.Model):
title = models.CharField(max_length=100)
price = models.FloatField()
class OrderItem(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE)
ordered = models.BooleanField(default=False)
item = models.ForeignKey(Item, on_delete=models.CASCADE)
quantity = models.IntegerField(default=1)
variation = models.ManyToManyField(Variation)
class Order(models.Model):
items = models.ManyToManyField(OrderItem)
这是views.py
@staff_member_required
def admin_order_pdf(request, order_id):
order = get_object_or_404(Order, id=order_id)
html = render_to_string('pdf.html', {'order': order})
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'filename="order_{}.pdf"'.format(Order.id)
weasyprint.HTML(string=html).write_pdf(response)
return response
这是 url.py
path('admin/order/(<order_id>\d+)/pdf/', views.admin_order_pdf, name='admin_order_pdf')
这是仅显示为突出显示的 pdf.html 模板
Ordered on: {{order.ordered_date}} <----------Showing
{% for order_item in order.items.all %}
{{ order_item.item.title }} <----------Not Showing
{% endfor %}
我什至尝试删除forloop但仍然没有发生任何事情
Ordered on: {{order.ordered_date}} <----------Showing
{{ order_item.item.title }} <----------Not Showing
解决方案
我想我没有足够的信息来回答,但从我在这里看到的情况来看,你只是从视图传递一个订单(单一订单),而不是一个查询集或任何其他可迭代的模板。我错过了查询集还是可迭代的?
如果您想访问与订单相关的其他对象(例如 OrderItem),您在模板中缺少它。从您的模型中,我可以看到 Order 与 OrderItem 而不是 Items 有关系。项目是您尝试在视图中访问的项目。(你甚至有一个 Items 模型吗?)
删除循环不起作用,因为模板中没有可用的 order_item 变量。
推荐阅读
- java - 无法为我的玩家角色和其他动画对象设置动画
- java - Android Studio,如何在对话框中动态更改视图,案例:Retrofit onSuccess
- android - 如何获取firestore中的实时更改?
- c# - 如何在 C# 中交换 XML 属性位置?
- python - 给定一个大小为 3 x 3 的矩阵 mat。找到位于每一行中的所有偶数,其最终累积和大于或等于 tO 150
- python - 如何重构我的代码以在 jinja 2 模板中呈现?
- wpf - 选择 TreeViewItem Header 时,TextBlock 内容变得不可见
- sorting - 所有 DAG 具有多个拓扑排序顺序的原因
- c# - Win32_Process 中的 PrivatePageCount 是什么?
- python - 如何使我可以始终使用单个scrapy蜘蛛绕过站点列表?