2009-10-01 71 views
2

以下型號顯示它:Django的模型一對一的關係,並從管理

class Price: 
    cad = models.DecimalField(max_digits=8, decimal_places=2) 
    usd = models.DecimalField(max_digits=8, decimal_places=2) 

class Product: 
    name = models.CharField(max_length=255) 
    price = models.ForeignKey(Price) 

對於每個產品,它關係到一個且只有一個價格目標將包含一個加拿大或美元值。以上是設定這種關係的適當方式嗎?下面是一些樣本數據:

Shirt, $100 US, $120 CAD 
Book, $20 US, $25 CAD 

我也想輸入從管理上面的信息,這樣的接口將類似於以下內容:

添加產品:

  • 名稱:
  • CAD:
  • USD:

我可以或多或少的做用下面的代碼上面:

class ProductInline(admin.StackedInline): 
    model = Product 

class PriceAdmin(admin.ModelAdmin): 
    inlines = [ 
     ProductInline, 
    ] 

我這樣做是正確的方法是什麼?

回答

1

爲什麼不只是使字段cadusd成爲Product表的成員?這樣你就可以免費獲得管理員的好處。他們被存儲在一個單獨的模型中會獲得什麼?另外,爲什麼不只是存儲一個價格,並且有一個匯率(我不知道這是否適合您的定價模型,但它似乎來自您提供的示例)。這樣你只需要輸入一個價格,如果需要的話,系統的其他部分可以用替代貨幣顯示價格。

我使用模板標籤做類似的事情,根據會話變量管理給定貨幣的貨幣值的顯示(當我卡住時,請參閱the question I asked)。

+0

我喜歡的CAD和美元作爲產品表的一部分,但根據其他團隊成員有可能在價格本身等額外操作作爲折扣等。 – 2009-10-02 15:11:23

+0

但是,如果價格和產品之間存在一對一的關聯,他們將如何在單獨的表格中提供幫助?你可以用單獨的表格做什麼,你不能用單個表格做什麼? – 2009-10-02 15:14:09