【发布时间】:2021-12-31 12:16:52
【问题描述】:
我开始了一个简单的入门级django项目进行练习,它使用sql-server作为数据库(mssql-django)。
如何将来自不同表的派生属性(计算列)作为模型上的字段?
假设我有这个模型
from django.db import models
class Person(models.Model):
name = models.CharField(max_length=50)
birth_date = models.DateField()
class JobTitles(models.Model):
job_title = CharField(max_length=20)
class Jobs(models.Model):
job_id = models.OneToOneField(
JobTitles,
on_delete=models.CASCADE,
)
person_id = models.ForeignKey(
Person,
on_delete=models.CASCADE,
)
job_income_in_usd = models.IntegerField()
class Salary(models.Model):
person_id = models.ForeignKey(
Person,
on_delete=models.CASCADE,
)
name = 'SELECT name FROM Person WHERE Salary.person_id = Person.id'
income_in_euro = 'SELECT job_income_in_usd * 0.89 FROM Jobs INNER JOIN Salary ON Salary.person_id=Jobs.person_id'
age = 'SELECT datediff(year, (SELECT birth_date FROM Person WHERE Salary.person_id=Person.id), getdate())'
如何在 Python-Django 代码中实现上述 SELECT 代码?
相关问题:
Derived attribute in Django model
How to add a calculated field to a Django model
Django getting field names from different models
相关的 SQL-Server 问题:
【问题讨论】:
标签: python sql-server django