Python 如何在Django Admin中使用订单模型上下文向pdf文件添加选项

Python 如何在Django Admin中使用订单模型上下文向pdf文件添加选项,python,python-3.x,django,django-models,django-views,Python,Python 3.x,Django,Django Models,Django Views,我有一个初学者的问题,在我的Django电子商务项目中,我想添加一个选项来包含订单细节,这样我就可以将它们打印为发票 我有三种型号:Item、OrderItem和Order。订单与订单项有多对多关系,订单项有一个外键与项目 我发现weazyprint有助于实现这一技巧,但我无法包含正确的上下文,因此我需要在包含要显示在模板中的顺序时提供建议 这是模型 class Item(models.Model): title = models.CharField(max_length=100)

我有一个初学者的问题,在我的Django电子商务项目中,我想添加一个选项来包含订单细节,这样我就可以将它们打印为发票

我有三种型号:
Item
OrderItem
Order
订单
订单项
有多对多关系,
订单项
有一个外键与
项目

我发现weazyprint有助于实现这一技巧,但我无法包含正确的上下文,因此我需要在包含要显示在模板中的
顺序时提供建议

这是模型

class Item(models.Model):
    title = models.CharField(max_length=100)
    keywords = models.CharField(max_length=100)
    price = models.DecimalField(decimal_places=2, max_digits=100)
    timestamp = models.DateTimeField(default=timezone.now)
    active = models.BooleanField(default=True)

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):
    user = models.ForeignKey(settings.AUTH_USER_MODEL,
                             on_delete=models.CASCADE)
    ref_code = models.CharField(max_length=20, unique=True, blank=True, null=True)
    items = models.ManyToManyField(OrderItem)
    start_date = models.DateTimeField(auto_now_add=True)
    ordered_date = models.DateTimeField()
    ordered = models.BooleanField(default=False)
我的观点有问题,这是不正确的,所以我需要帮助

@staff_member_required
def admin_order_pdf(request, order_id):
    order = --------------------------------> having difficulty wiriting the right code for the template
    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')
我们将非常感谢您的帮助。多谢各位

                    Ordered on: {{order.ordered_date}}
                    {% for order_item in order.items.all %}
                    {{ order_item.item.title }}        
                    {% endfor %}