2009-10-28 41 views
6

在創建models.py和admin.py後,Django製作了非常好的表單。在django中重複使用用戶視圖的管理表單?

如何在我自己的視圖中重用這些表單(具有對外鍵和多對多字段的更好處理)?

ModelForm只生成「簡單」形式。我從哪裏得到額外的電池?

回答

2

股票ModelForm將完成管理員所做的幾乎所有操作(ForeignKeys將變爲下拉選擇,ManyToManyFields將變爲多選)。

主要的例外是用於添加新條目的小綠加按鈕。要做出這些通用性是相當困難的,因爲它們依賴於許多管理員特定的事情:知道在哪裏找到鏈接模型的添加頁面; JS彈出一個窗口,在提交時關閉它,並更新父頁面;等等。你可以挖掘管理員並找出它是如何實現這些額外的細節的,但是不會有一種簡單的方法將它們放入你的代碼中。

您可能想要的其他細節是ManyToManyField的filter_horizo​​ntal或filter_vertical替代UI。這些實現爲ordinary form widgets,所以潛在的可能性是在你自己的代碼中重用它們,但我猜測它需要一些實驗和定製才能使它正常工作。

+0

綠色加號按鈕是我一直在尋找細微。所以,這證實沒有簡單的方法。謝謝! – toaster 2009-10-28 16:31:10