我正在使用Django執行項目,並使用PayPal訂閱。當您購買產品時,會將詳細信息保存在「採購」表中(順便說一句,它會在數據庫中寫入購買3次,但這是另一個問題)。 現在我試圖在用戶的配置文件模板中顯示購買列表。我有一個包含列表的購買模板,當我通過自己的URL查看它時,它會起作用,但每當我嘗試在其他模板中顯示時,它都只是空白。Django - 顯示用戶個人資料中的購買列表 - 包含模板和其他應用程序中的列表
這是我的結構:
- 應用:客戶,產品,貝寶
- 模式:用戶(自定義),產品,購買
- 模板:簡介,產品,採購,paypal_return /取消, ...
- 瀏覽次數:註冊,登錄,註銷,ALL_PRODUCTS,paypal_return /取消,...
- templatetags/products_extra:paypal_form_for,而現在一臺帶purchases_list simple_tag(我也嘗試只是一個觀點我ñ產品/ views.py)
而且我的問題是:
我應該有購買不同的應用程序?
構建採購清單並將其顯示在另一個應用程序的模板中的最佳方式是什麼?我已經閱讀了大量的文章和文檔,並嘗試將模板{%include ..%}與simple_tags一起使用,並帶有模板繼承,包含標籤......但我無法使其工作。
下面是我現在的代碼。
預先感謝您!
models.py
class Purchase (models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='purchases')
product = models.ForeignKey(Product)
license_end = models.DateTimeField(default=timezone.now)
templatetags/product_extras.py
@register.simple_tag
def purchases_list(request):
purchases = Purchase.objects.all()
return render(request, 'products/purchases.html', {'purchases': purchases})
urls.py
url(r'^purchases/$', product_extras.purchases_list, name='purchases'),
purchases.html
<p>PURCHASES</p>
{% for purchase in purchases %}
<p>{{purchase.id}}-{{ purchase.product }} - {{ purchase.license_end }}</p>
{% endfor %}
個
profile.html
{% include "products/purchases.html" %}
purchases.html和profile.html繼承自哪些模板? –
配置文件繼承自base.html(主要是網站的頁眉和頁腳),購買不從任何繼承。我嘗試過從配置文件繼承並創建{%block%},但無法使其工作 – Ire
您能向我們展示用於繪製配置文件頁面的視圖代碼嗎?你必須在那裏設置購買變量和你想要呈現的內容。我不認爲自定義模板標籤在這種情況下是很好的解決方案。 –