第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

上下文“Order.Items”未出現(xiàn)在 Django Admin 的 PDF 文件中

上下文“Order.Items”未出現(xiàn)在 Django Admin 的 PDF 文件中

PHP
小唯快跑啊 2023-11-09 16:53:01
你好,我正在嘗試向我的管理員添加一項(xiàng)功能,可以從 PDF 文件下載訂單詳細(xì)信息,到目前為止,除了 Order.Model 未完全顯示外,該功能已成功。所以我有 3 個(gè)模型:Item、OrderItem和Order。與Order具有多對(duì)多關(guān)系,OrderItem并且OrderItem與 具有外鍵Item。在模板中,我嘗試在Order.Itemswhich is之間循環(huán)items = models.ManyToManyField(OrderItem),但它沒(méi)有呈現(xiàn)任何數(shù)據(jù)。這是 models.pyclass 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_requireddef 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 但仍然沒(méi)有發(fā)生                    Ordered on: {{order.ordered_date}}  <----------Showing                                        {{ order_item.item.title }}         <----------Not Showing
查看完整描述

3 回答

?
萬(wàn)千封印

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊

您正在將 Manytomany 字段與 一起使用OrderItem。因此,為了達(dá)到OrderItem,您將必須通過(guò)through在后臺(tái)創(chuàng)建的模型。您through在編寫(xiě)時(shí)訪問(wèn)的是模式order.items.all()而不是OrderItem模型。

Order假設(shè)您的意圖是在和模型之間創(chuàng)建多對(duì)多關(guān)系Item。那么您應(yīng)該如何創(chuàng)建您的ManyToMany

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(Item, through='OrderItem')

這將解決您的問(wèn)題。


查看完整回答
反對(duì) 回復(fù) 2023-11-09
?
ibeautiful

TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊

我想我沒(méi)有足夠的信息來(lái)回答,但從我在這里看到的,您只是從視圖(單個(gè)訂單)傳遞一個(gè)訂單,而不是查詢集或任何其他可迭代到模板。我錯(cuò)過(guò)了查詢集或可迭代嗎?

如果您想訪問(wèn)與訂單相關(guān)的其他對(duì)象(例如 OrderItem),則您在模板中缺少它。從您的模型中我可以看到 Order 與 OrderItem 有關(guān)系,而不是 Items。項(xiàng)目是您嘗試在視圖中訪問(wèn)的項(xiàng)目。(你有 Items 模型嗎?)

刪除循環(huán)不起作用,因?yàn)槟0逯袥](méi)有可用的 order_item 變量。


查看完整回答
反對(duì) 回復(fù) 2023-11-09
?
30秒到達(dá)戰(zhàn)場(chǎng)

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊

{{order.ordered_date}}這是無(wú)效的。根據(jù)您在此處顯示的內(nèi)容,您的Order模型沒(méi)有任何字段或方法。ordered_date


Ordered on: {{order.ordered_date}}  # This is wrong and invalid

                    

{% for order_item in order.items.all %}

    {{ order_item.item.title }} # This is valid, use this method to render other fields

{% endfor %}

當(dāng)你轉(zhuǎn)換上面的html代碼時(shí),它會(huì)生成這樣的pdf。item_1這是項(xiàng)目的標(biāo)題。{{order.ordered_date}}沒(méi)有工作而是{{ order_item.item.title }}工作并且它被渲染在pdf中。

https://img1.sycdn.imooc.com/654c9e220001767603460188.jpg

您共享的第二個(gè)片段無(wú)效,不會(huì)顯示任何動(dòng)態(tài)數(shù)據(jù)。它只會(huì)渲染Ordered on:

Ordered on: {{order.ordered_date}}  <----------Invalid
                
{{ order_item.item.title }}         <----------Invalid

我希望這能解決您的疑問(wèn)。


查看完整回答
反對(duì) 回復(fù) 2023-11-09
  • 3 回答
  • 0 關(guān)注
  • 222 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)