&引用;选择“作为…”;使用Django中的相关模型数据
我有一个应用程序,用户可以在其中选择自己的显示列。每个显示列都有一个指定的公式。要计算这个公式,我需要连接几个相关列(一对一关系)并计算值 模型如下(这只是一个示例模型,实际有100多个字段): 我试着做:&引用;选择“作为…”;使用Django中的相关模型数据,django,django-models,django-views,django-queryset,Django,Django Models,Django Views,Django Queryset,我有一个应用程序,用户可以在其中选择自己的显示列。每个显示列都有一个指定的公式。要计算这个公式,我需要连接几个相关列(一对一关系)并计算值 模型如下(这只是一个示例模型,实际有100多个字段): 我试着做: ratios = {'growth':'quarter__sales_now / quarter__sales_previous'} CompanyCode.objects.extra(select=ratios) # raises "Unknown column 'quarter__sal
ratios = {'growth':'quarter__sales_now / quarter__sales_previous'}
CompanyCode.objects.extra(select=ratios)
# raises "Unknown column 'quarter__sales_now' in 'field list'"
我还尝试使用原始查询:
query = ','.join(['round((%s),2) AS %s' % (formula, ratio_name)
for ratio_name, formula in ratios.iteritems()])
companies = CompanyCode.objects.raw("""
SELECT `backend_companycode`.`id`, %s
FROM `backend_companycode`
INNER JOIN `backend_quarter` ON ( `backend_companycode`.`id` = `backend_companyquarter`.`company_code_id` )
""", [query])
#This just gives empty result
所以,请给我一点提示,如何更好地使用“extra”命令使用相关列。谢谢。由于计算是在一个
季度
实例上进行的,那么在选择
中需要在哪里进行计算呢?您可以在季度
模型上定义一个比率
方法/属性:
@property
def quarter(self):
return self.sales_now / self.sales_previous
并在必要时调用它,因为计算是在单个
季度
实例上进行的,那么需要在选择
中执行吗?您可以在季度
模型上定义一个比率
方法/属性:
@property
def quarter(self):
return self.sales_now / self.sales_previous
在必要的时候给它打电话好的,我找到了。在上述情况下,使用:
CompanyCode.objects.select_related('quarter').extra(select=ratios)
解决了这个问题
基本上,要通过“extra”访问任何相关的模型数据,我们只需要确保该模型已加入到我们的查询中。使用select_related,查询会自动加入上述模型
谢谢:)。好的,我找到了。在上述情况下,使用:
CompanyCode.objects.select_related('quarter').extra(select=ratios)
解决了这个问题
基本上,要通过“extra”访问任何相关的模型数据,我们只需要确保该模型已加入到我们的查询中。使用select_related,查询会自动加入上述模型
谢谢:)。到目前为止,Django文档说应该这样做 下面是一个没有额外()的查询:
到目前为止,Django文档说应该这样做 下面是一个没有额外()的查询:
对不起,以上只是一个例子。这里有100多个不同的比率和100个不同的字段。对不起,上面只是一个例子。有100多个不同的比率和100多个不同的字段。请注意,这可能不适用于django 1.7。更多信息:请注意,这可能不适用于django 1.7。有关更多信息: