Python 如何在Django Admin中使用订单模型上下文向pdf文件添加选项
我有一个初学者的问题,在我的Django电子商务项目中,我想添加一个选项来包含订单细节,这样我就可以将它们打印为发票 我有三种型号: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)
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 %}