我正在用Python/Flask/Jinja2構建一個網站,其中涉及用戶創建的列表。每個列表都有一個到期日期,因此每個列表都是活動的或過期的。如何在顯示相同對象的兩個版本時構建Jinja2模板?
每個上市將有其自己的頁面在mysite.com/listings/<listing_id>
。過期的列表頁面看起來與活動的列表頁面不同。差異可能很多,但頁面的高級結構將是相同的(畢竟,兩者都在同一網站上列出)。
構建模板和邏輯的最佳方式是什麼?我看到兩個選項:
首先,我可以創建兩個Jinja2模板:listing.html
和listing_expired.html
。視圖函數將確定列表是否處於活動狀態或過期狀態,然後渲染適當的模板。缺點是兩個模板必須保持同步。
或者,我可以只有一個模板:listing.html
。然後模板將包含邏輯來測試列表是否過期。模板的一部分將在過期時使用,如果不是,則使用另一部分(使用大語句if-else
)。
什麼是正確的方式來構造這個?