首页 > 解决方案 > Django 将 values 或 values_list 与不相关的模型一起使用

问题描述

我有这两个模型:

class GeneCombination(models.
    gene = models.ForeignKey(Gene, db_column='gene', on_delete=models.DO_NOTHING, db_constraint=False)

class Gene(models.Model):
    name = models.CharField(max_length=50, primary_key=True)
    type = models.CharField(max_length=25)

我知道这不是最好的模型模式,由于业务规则,它必须是这样的。我从模型中获取值,从GeneCombination模型中获取一些字段Gene。现在,可能是基因模型中不存在基因,在这种情况下,当我使用方法时,行正在被过滤valuesvalues_list这是我想要防止的。

此查询返回 31 个元素:GeneCombination.objects.select_related('gene').values('gene')

但是此查询返回 27 个元素(正在过滤Gene 表中不存在基因的 4 个元素):GeneCombination.objects.select_related('gene').values('gene__type')

如果它不存在并阻止过滤行,我怎么能得到空值?

在此先感谢,对我的英语感到抱歉

标签: pythondjangodjango-models

解决方案


推荐阅读