2009-10-01 45 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