拥有这两个模型:
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'),)我尝试选择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)这将返回:
Cannot resolve keyword 'models' into field. Choices are: comm, id1, id2, id2_id.如果没有for循环,一切都可以正常工作,但我没有Models数据。
我遗漏了什么?
发布于 2017-08-04 18:44:32
试一下,
for field in genes:
condition &= Q(id2__genes__icontains=field)
models = ModelInteractions.objects.filter(condition)Models是表的名称。执行查询时,请使用field_names作为管理器方法filter的关键字参数。
https://stackoverflow.com/questions/45504761
复制相似问题