(“相关字段的查询无效:{}”。format(lookup_name))django.core.exceptions.FieldError:相关字段的查询无效:包含

时间:2019-12-10 16:44:45

标签: django django-models django-rest-framework django-views

我有类似的模型:

class Gtex1(models.Model):
    id = models.TextField(primary_key=True)
    sample = models.TextField(blank=True, null=True)
    gtex_s4q7_0003_sm_3nm8m = models.FloatField(db_column='GTEX-S4Q7-0003-SM-3NM8M', blank=True,    null=True)  
    gtex_qv31_1626_sm_2s1qc = models.FloatField(db_column='GTEX-QV31-1626-SM-2S1QC', blank=True,    null=True) 
    gtex_13ovi_1026_sm_5l3em = models.FloatField(db_column='GTEX-13OVI-1026-SM-5L3EM', blank=True,    null=True)


class Tcga1(models.Model):
    id = models.ForeignKey(Gtex1, models.DO_NOTHING, db_column='id', primary_key=True)
    sample = models.TextField(blank=True, null=True)
    tcga_we_aaa0_06 = models.FloatField(db_column='TCGA-WE-AAA0-06', blank=True, null=True)  
    tcga_86_8668_01 = models.FloatField(db_column='TCGA-86-8668-01', blank=True, null=True)  
    tcga_d8_a146_01 = models.FloatField(db_column='TCGA-D8-A146-01', blank=True, null=True) 

我有将近30个类似Tcga1的模型,它们具有相同的主键(id),这是Gtex1模型的外键。

我正在尝试这样做:

    search_models=[models.Gtex1,models.Tcga1,models.Tcga2,models.Tcga3]
    search_results = []
    search_query='tcga_61_2111_01'
    for m in search_models:
        fields=[x for x in m._meta.get_fields()]
        search_queries=[Q(**{x.name + "__contains" : search_query}) for x in fields]
        q_object = Q()
        for query in search_queries:
            q_object = q_object | query
        results = m.objects.filter(q_object)
        search_results.append(results)

    print(search_results) 

这基本上是遍历所有模型的列名,并查找搜索查询并对其进行过滤。

但是,我收到如下错误消息:

  • raise FieldError('相关字段的查询无效: {}'。format(lookup_name))django.core.exceptions.FieldError:相关 字段查找无效:​​包含

如果有人可以帮助我了解如何解决此问题,则任何见解都会有所帮助和赞赏。

非常感谢您。

0 个答案:

没有答案