2009-08-02 110 views

回答

3

當然,你可以通過下面的說明here定製管理非常精細地 - 我相信你想有一部分可以通過在自己的ModelAdmin子類覆蓋ModelAdmin.save_model(self, request, obj, form, change),以確保沒有獲得什麼樣的商店發生在change是假的(即嘗試添加而不是改變),部分通過重寫ModelAdmin.add_view(self, request, form_url='', extra_context=None)來顯示「添加視圖」,這使得管理員非常清楚他們將不被允許通過該路線添加對象。我還沒有真正完成你需要的特定的管理定製,但我已經完成了其他的工作,而且他們似乎工作得很順利!

+0

謝謝你的答案。我希望能夠實現這一點的設置,即save_as ModelAdmin屬性的工作方式。 – 2009-08-02 02:06:22

+0

我不知道在股票Django 1.0這樣的設置,但也許有一些> 1.0和/或contrib hack來提供它 - 股票1.0.something是我堅持到目前爲止(主要是因爲它運行良好應用引擎,我承認;-)。 – 2009-08-02 02:47:19

3

您可以在管理界面中爲每個用戶組定製權限:嘗試去/admin/auth/group,從那裏應該很簡單。

這不像前面答案提供的解決方案那麼細緻,但它可以滿足您的大多數需求,而無需自定義管理員。

2

如果您更改限制訪問的權限,那麼您仍然可以通過FK/MtM字段獲得加號。點擊它將打開一個彈出窗口,其中包含「權限被拒絕」。

實際上,您完全可以通過不向管理員註冊模型來完全刪除加號。

我有一種情況,我有預定義的類別,我希望用戶能夠選擇多個。最好的方法是使用models.ManyToMany字段。您可以向管理員註冊模型,根據需要輸入數據,然後刪除註冊。

1

一個簡單有效的方法是爲該特定內聯設置max_num=0

0

Satya建議設置max_num = 0的作品完美。

每對的ModelForm類Django文檔:

對於支持JavaScript的瀏覽器,用戶的「添加其他」鏈接以使任何數量的額外的內聯到除了那些添加提供作爲額外論證的結果。

如果當前顯示的窗體數量超過max_num,或者用戶沒有啓用JavaScript,則動態鏈接不會顯示。

與常規表單集,您可以使用MAX_NUM和額外的參數modelformset_factory限制顯示額外表格的數量。

MAX_NUM不會阻止現有對象顯示