Django ORM简单联接

Django ORM简单联接,django,django-models,django-orm,Django,Django Models,Django Orm,我想像这样执行简单的连接操作 原始SQL:从风险中选择*加入r.sku\U id=s.sku\U id上的sku\U详细信息 型号详情: 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)

我想像这样执行简单的连接操作

原始SQL:从风险中选择*加入r.sku\U id=s.sku\U id上的sku\U详细信息

型号详情:

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将两个表的所有列都设置为平面结构。。。 在原始SQL中,我将获得所有列。。。但不是从ORM那里得到的


请帮忙

使用以下工具很容易获取字典列表中的所有值:


您也可以签出。

您可以使用
选择相关的
进行尝试。相关帮助与外键关系作为两种模式

你其实并不想要这个。使用ORM的全部意义在于它为您提供对象,而不是值列表。。。我不必添加所有列。。。默认情况下,它会给我对象中的所有相关列。如果您需要我相信的相关字段,则不会
values()
不带参数提供所有字段,但仅在查询的模型中提供。使用select\u related。。在我得到嵌套结果。。。我想要平淡的结果。有什么方法可以得到它吗?那么@nikungaggarwal你需要使用
value\u list
刚才@Endre都说了什么。
Risks.objects.values(
    'risk_id',
    'risk_group_short_desc`,
    # ... fields you need from Risks
    'sku__sku_id',
    # ... fields you need from SkuDetails
)