사용자가 자신의 표시 열을 선택하는 응용 프로그램이 있습니다. 각 표시 열에는 지정된 수식이 있습니다. 이 수식을 계산하려면 관련 열 (일대일 관계)에 거의 가입하지 않고 값을 계산해야합니다.Django에서 관련 모델 데이터가있는 "SELECT ... AS ..."
class CompanyCode(models.Model):
"""Various Company Codes"""
nse_code = models.CharField(max_length=20)
bse_code = models.CharField(max_length=20)
isin_code = models.CharField(max_length=20)
class Quarter(models.Model):
"""Company Quarterly Result Figures"""
company_code = models.OneToOneField(CompanyCode)
sales_now = models.IntegerField()
sales_previous = models.IntegerField()
내가하고 시도 : 나는 또한 원시 쿼리를 사용하여 시도
ratios = {'growth':'quarter__sales_now/quarter__sales_previous'}
CompanyCode.objects.extra(select=ratios)
# raises "Unknown column 'quarter__sales_now' in 'field list'"
:
모델은 (이것은 단지 예를 들어 모델, 실제는 100 개 이상의 필드가 있습니다)처럼
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
그래서 '추가'명령을 사용하여 관련 열을 어떻게 사용할 수 있는지 조금만 알려주십시오. 감사.
죄송하지만, 위의 단지 예입니다. 100 가지 이상의 다양한 비율과 100 가지 필드가 있습니다. – Pratyush