2010-10-12 68 views
1

我想知道是否有一种方法来基于多个字段的串联来计算管理站点中的字段。Django管理站点:如何从多个字段值计算字段?

基本上我有一个产品模型与不同的领域关联到各种属性 (颜色,大小,长度等)。

我想计算码值是一样的各种属性字段的值的串联:

code = colour + "_" + size + "_" + length 
+0

这有点含糊。你想什么时候计算它?展示中?你想将计算值保存在数据库中吗? – 2010-10-12 18:00:32

+0

嘿。对于模糊性抱歉,Im在它的一开始:)理想情况是它会像在自动填充中一样在显示器上动态计算。肯定它必须被保存。谢谢! – 2010-10-12 19:52:48

回答

0

有几个方法可以做到这一点。我已经做了这样的事情在我的模型clean方法:

def Product(models.Model) 
    # field definitions here 

    def clean(self): 
     self.code = self.colour + "_" + self.size + "_" + self.length 

在模型层做它(这只会对Django 1.2 and above版本一起使用)的,它会到处适用的优点,而不只是你在哪里使用特定的表单。

+0

does not似乎工作:它会引发类型的错误“实例需要有一个主键值之前可以使用多对多的关系。”字符串连接也似乎不起作用。 – 2010-10-12 20:27:59

0

看看ModelAdmin.prepopulated_fields