首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django 1.9无法将关键字'models‘解析到字段中。选项包括: comm、id1、id2、id2_id

Django 1.9无法将关键字'models‘解析到字段中。选项包括: comm、id1、id2、id2_id
EN

Stack Overflow用户
提问于 2017-08-04 18:43:07
回答 1查看 61关注 0票数 1

拥有这两个模型:

代码语言:javascript
复制
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)。

我使用的是:

代码语言:javascript
复制
# 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)

这将返回:

代码语言:javascript
复制
Cannot resolve keyword 'models' into field. Choices are: comm, id1, id2, id2_id.

如果没有for循环,一切都可以正常工作,但我没有Models数据。

我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-04 18:44:32

试一下,

代码语言:javascript
复制
for field in genes:
    condition &= Q(id2__genes__icontains=field)
models = ModelInteractions.objects.filter(condition)

Models是表的名称。执行查询时,请使用field_names作为管理器方法filter的关键字参数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45504761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档