django orm简单加入



我想执行这样的简单加入操作。

RAW SQL: SELECT *从风险中选择R r r.sku_id上的sku_details s in r.sku_id = s.sku_id;

模型详细信息:

class SkuDetails(models.Model):
    sku_id = models.DecimalField(primary_key=True, max_digits=65535, decimal_places=65535)
    sku_desc = models.TextField(blank=True, null=True)
    category = models.TextField(blank=True, null=True)

class Risks(models.Model):
    risk_id = models.DecimalField(primary_key=True, max_digits=65535, decimal_places=65535)
    risk_group_short_desc = models.TextField(blank=True, null=True)
    risk_group_desc = models.TextField(blank=True, null=True)
    var = models.DecimalField(max_digits=65535, decimal_places=65535, blank=True, null=True)
    sku = models.ForeignKey(SkuDetails, models.DO_NOTHING, blank=True, null=True)

加入后,我希望通过django orm的平坦结构中的所有表格的所有列...在RAW SQL中,我将获得所有列...但不会从ORM

获得

请帮助!

在字典列表中获取所有值很容易使用值():

Risks.objects.values(
    'risk_id',
    'risk_group_short_desc`,
    # ... fields you need from Risks
    'sku__sku_id',
    # ... fields you need from SkuDetails
)

您也可以查看values_list()。

您可以使用select_related尝试一下。相关的帮助材料都以外交关系为模型。

最新更新