2012-02-17 59 views
5

我已經構建了一個django模型,其中必填字段根據用戶在其他先前字段上的選擇而更改。具體來說,它是一個事件調度應用程序,其中的選項根據用戶的選擇而改變。Django Admin根據其他選擇動態禁用字段

某些字段組合很簡單,我設置了模型來檢查這些字段而不允許它們。但是,在用戶界面中弄清楚正確的組合有點令人困惑。我希望管理員用戶界面通過在用戶更改其他字段時隱藏或禁用無效字段來幫助解決此問題。例如,如果用戶選擇每週重複該事件,則需要禁用(或理想地移除)所有的每日和每月字段,並且僅顯示每週的事件,例如星期幾。

此外,如果他們返回並將其更改爲每日,則顯示或啓用的字段需要更改以反映該選擇。

我將如何設置管理員表單以便發生這種情況?我知道這是可行的通過DOM和JavaScript,但我想確定是否有內置到Django的機制。我一直在搜索Django文檔,但我似乎無法找到它。

有沒有人有一個例子顯示你做過類似的事情?

+0

在Django中沒有「機制」。 JavaScript是您唯一的選擇。使用JavaScript有什麼問題? – 2012-02-17 15:23:57

回答

3

沒有解決方案。

簡單的解決方案是將自定義JavaScript代碼添加到您的管理員。請參閱reference here。只需將js和css文件添加到Admin類,並在自定義js中編寫腳本。

class ReportAdmin(admin.ModelAdmin): 

    class Media: 
     js = (
      'frontend/js/jquery-1.6.1.min.js', 
      'frontend/js/jquery-ui.min.js', 
      'frontend/js/custom_js.js', 
     ) 
+3

您還需要更新模型的乾淨方法,否則用戶可能會提交無效數據,如果他們修改或關閉JavaScript。 – jterrace 2012-02-17 17:59:51

相關問題