2014-01-11 72 views
1

- 不完全是一個問題,但更多的是討論 ; 像客戶,訂單,項目,供應商等等。每個對象都有一個基本的CRUD,對吧? 所以urls.py會是這個樣子Django的多個對象CRUD和智能的網址系統

client **display a CBV list 
client/add 
client/123/edit 
client/123/delete 

&再次相同的模式爲訂單

order 
order/add 
order/123/edit 
order/123/delete 
...and so on 

我認爲這是一個明顯違反該乾的原則,並且還具有一個優化問題在比賽之前匹配所有不必要的條目。 ,相反,我們可以捕捉第一部分(客戶端例如)&發送它作爲參數傳遞給一個子urls.py處理該對象上的命令(如項目 - >應用程序,但用更深層次(一個或多個)

我也跟着在這裏http://www.slideshare.net/jacobian/the-best-and-worst-of-django描述了幾個設置文件的相同的技術(開始放映45) 與urls.py ..

所以我們有兩個主要途徑從這裏去:

1-對於每個模型,我們都有一個將主CRUD視圖附加到每個網址的urls文件。

2一個更通用的路由,處理所有對象的crud,但這條路線鼓勵一個輔助函數(主要決定哪個視圖加載),我覺得它不被鼓勵,我也不太確定如何處理反向()在這種情況下。

任何想法,闡述,見解?!

+0

畢竟這一次,你是否解決了這個問題,如果是的話,你可能提供了一些指針? – jliendo

+0

起初,我通過url(r'order',include(order_urls))解決了這個問題,但這導致了url文件中的混亂,但現在,我實現的解決方案是一個url模式列表生成器,很像Django管理員所做的。 –

回答