2011-02-03 167 views
1

正如大家所知,django爲您的項目提供了一個非常基本但靈活的管理面板。我在這裏看到了討論(dis)優點的討論。編寫自己的控制界面並使用默認的控制界面。僅供參考,我會提及的是,imo,django.contrib.admin適用於快速簡單的項目,不需要任何複雜的內容管理;所以對於網站的絕對控制和完全定製,人們可能應該實現適當的管理界面。我可以使用django管理員作爲應用程序嗎?

我想嘗試爲我正在工作的項目嘗試滾動我自己的管理員,但實際上不想重新啓動輪子,所以也許我可以使用django的管理員作爲我的項目中的插件應用程序定製它我想要的方式?你有什麼想法怎麼做?也許已經有一些simmilar應用程序?

回答

2

我對django.contrib.admin沒有任何建議,因爲我沒有使用它。我的客戶更喜歡他們的網站幾乎CMS類似內聯更新(兩個「版本」混淆他們),我更喜歡額外的控制。

那麼,在那個脈絡上,你有沒有用過django.forms? Django表單會根據您的需求爲您提供一種接受和驗證輸入的簡單方法。您可以使用自己的自定義字段擴展表單,並自定義their validation。因此,例如,如果輸入的字符串包含要忽略的字符,則可以向表單添加一個字段,以提高ValidationError。 Django有很多有用的輸入字段,包括EmailField

下一個真正的大把戲是django.forms.ModelForm。這提供了一種非常簡單的方法來快速編寫自定義表單,然後將其插入正確的對象,然後將其保存到數據庫中。它爲你做到了。所有的。從字面上看,你這樣做:

fItem = ItemForm(request.POST) 
# or 
# I = Item.objects.get(id=?) 
# fItem = ItemForm(request.POST, instance=I) 

if f.is_valid(): 
    fItem.save() 

從這和使用窗體,你可以很容易地創建CRUD操作。

接下來要實現的是用戶,組和權限。沒有什麼能阻止你使用提供的認證資料來提供你自己的用戶界面。您不必使用實際的管理網站;這兩個並不捆綁在一起。

我個人推出了自己的產品,我傾向於使用它,因爲在我的一項工作中,客戶端對認證和授權有特定要求。我不會推薦它 - 只是使用那裏的東西。特別是因爲現在有authentication backends,如Django-SocialAuth

相關問題