簡體   English   中英

Django根據數據庫條件限制拖放

[英]Django restricting drag and drop based on database conditions

希望我能說清楚:我有允許拖放我網站的功能的 javascript 代碼。 我只需要在我的數據庫中的某些對象在 div 上沒有准備好時才允許刪除。 為此,我需要查詢數據庫。 但是,顯然我們無法使用模板語言查詢 django DB,所以我不確定如何執行此操作。

特定用例:我有課程對象和 prerequestie realation,顯示哪些課程是其他課程的先決條件。 只有當所有課程的先決條件都已經在規划器上時,我才希望能夠在規划器上放棄課程。 所以我需要查詢課程的先決條件,看看是否有任何課程已經在規划師中。 我需要為此使用 AJAX 之類的東西嗎? 當我第一次開始使用 django 時,我以為我可以使用它的模板標簽來做到這一點,但它們似乎不適用於查詢或 javascript

Django 不喜歡允許您在模板中查詢數據庫是有原因的。 邏輯代碼和 UI 代碼的分離是非常合理的設計。

您需要做的是加載模板之前查詢數據庫,然后將數據以變量的形式傳遞給模板。 通過這種方式,模板可以基於數據構建自己,並且可以基於數據允許或禁止拖放(您可以使用 jquery 動態允許/禁止,啟用或禁用基於表單條目的元素)。

編輯(從評論中移出)

您也可以創建一個 REST API 並使用 ajax 查詢它,然后根據結果重構您的網頁。 或者您可以在 Django 中創建一個自定義過濾器並使用它來訪問數據庫。 您可能會遇到自定義過濾器的問題,因為 Django 模板是為服務器端生成而設計的,嘗試使用它們動態更新站點可能會非常痛苦。

暫無
暫無

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

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