3 回答

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)題。

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 變量。

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中。
您共享的第二個(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)。
- 3 回答
- 0 關(guān)注
- 222 瀏覽
添加回答
舉報(bào)