簡體   English   中英

如何在 django-oscar 中顯示所有用戶購買的產品?

[英]How to show all user purchased products in django-oscar?

我正在嘗試在 django-oscar 上呈現所有用戶購買的產品,但我遇到了一些問題。

我可以按用戶順序打印所有訂單。

OrderProduct.objects.filter(user=user)

但如果訂單中包含的產品很少(保存在 order.line 中),它不會單獨打印每個產品我也可以在 orders.line 中打印所有產品

LineProduct.objects.all() 

但我無法按用戶過濾它們,因為 order.line 中沒有用戶字段。

我可以在 order.line 上添加用戶字段,並在每次下訂單時從訂單中復制,但我認為這不是最佳解決方案。

有人對解決方案有任何想法嗎?

提前致謝

編輯:這是模型文件鏈接https://github.com/django-oscar/django-oscar/blob/fe37a51c040303b6f0251d1973d39694c3eaba88/src/oscar/apps/order/abstract_models.py#L27

您可以獲得用戶購買的所有產品的列表:

Product.objects.filter(line__order__user=user)

這是按照外鍵關系從LineProduct向后,然后從LineOrder再到User向前(請參閱文檔以了解其工作原理)。

此查詢集可能會導致重復,因此您可能希望在末尾添加一個distinct()子句,具體取決於您要對其執行的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM