2011-09-26 71 views
0

(所有的代碼都是某種僞的,只是爲了更好的閱讀 我有發票型號:Django的外鍵的管理界面和模型結構

class Invoice(models.Model): 
     // many fields here 

我需要附加一些產品(價格單位,和數量字段)這個發票,所以我做了額外的表:

class InvoiceProduct(models.Model): 
    product = models.ForeignKey 
    quantity = models.IntegerField 
    unit_price = models.DecimalField 
    invoice = models.ForeignKey(Invoice) 

所以,這幾乎是第一個問題 - «能不能做到更好的辦法?»

我的第二個問題是,在django管理員中,我通過內聯管理這些模型: Screenshot 但我的客戶想要的不然。他想要一個按鈕(添加產品),然後出現彈出窗口,其中包含以下字段: 產品,數量,單價。他填充他們,按OK。然後彈出窗口關閉,並在主窗體中出現與「產品字段」一致的行。 我想我需要覆寫管理員表單模板?或者我需要編寫我自己的小部件或者像那樣運動嗎?

對不起,我的英文。

回答

0

我對你的客戶的要求

建議他想要一個按鈕(添加產品),然後彈出窗口出現時,用字段:產品,數量,單價。他填充他們,按OK。

不要使用django管理員爲此。只能用於想要直接訪問數據的人。在我的腦海中,我發現它距離數據庫本身只有一半的距離。這意味着它不適合用戶而不是管理員。

或者我需要編寫自己的小部件或者像這樣的嗎?

+0

好的。但另一方面,其他具有標準管理界面的應用程序很適合他。所以,從不同的地方添加數據可能會讓他感到困惑。你的建議?我應該爲所有這些應用創建自己的管理界面? – maxwell

+0

@Maxwell是的。這不是管理界面的真正目的。它專爲真正知道自己在做什麼的人設計。如果你不讓他直接訪問數據庫,不要讓他在管理界面。如果你願意,你必須忍受它的僵化。 –