Django 1.9 无法将关键字 'models' 解析为字段。选项有:comm、id1、id2、id2_id

Django 1.9 Cannot resolve keyword 'models' into field. Choices are: comm, id1, id2, id2_id

有这两个模型:

class Models(models.Model):
    id = models.IntegerField(primary_key=True)
    name = models.TextField()
    genes = models.TextField(blank=True, null=True)
    class Meta:
        db_table = 'models'

class ModelInteractions(models.Model):
    id1 = models.IntegerField(primary_key=True)
    id2 = models.ForeignKey('Models')
    comm = models.TextField(blank=True, null=True)
    class Meta:
        unique_together = (('id1', 'id2'),)

我正在尝试 select comm(来自 ModelInteractions)但也尝试使用 name(来自 Models),具体 request_id(随请求收到的 ID)。

我正在使用:

# request_genes example = "ab-2;cra-19"
genes = request_genes.split(';')
condition = Q(id2=request_id)
for field in genes:
    condition &= Q(models__genes__icontains=field)
models = ModelInteractions.objects.filter(condition)

这个returns:

Cannot resolve keyword 'models' into field. Choices are: comm, id1, id2, id2_id.

没有 for 循环一切正常,但我没有 Models 数据。

我错过了什么?

试试,

for field in genes:
    condition &= Q(id2__genes__icontains=field)
models = ModelInteractions.objects.filter(condition)

Models 是 table 的名称。执行查询时,使用 field_names 作为管理器方法 filter.

的关键字参数