如何使用具有外键的模型进行 Q 查询?

     2023-02-23     284

关键词:

【中文标题】如何使用具有外键的模型进行 Q 查询?【英文标题】:How to make Q queries with models with foreign keys? 【发布时间】:2013-10-10 12:28:46 【问题描述】:

我的模型是这样定义的:

class Model2(models.Model):
    id = models.IntegerField(primary_key=True)
    name = ...

class Model1(models.Model):
    id = models.IntegerField(primary_key=True)
    model2 = models.ForeignKey(Model2, to_field='id', db_column='model2')

问题是我不知道如何使用 queryset 进行 OR 查询。

qs = Model1.objects.filter(Q(model2.id__icontains=search) | Q(id__icontains=search))

我明白了

关键字不能是表达式

所以问题是如何在 Q 查询中引用相关模型的字段?谢谢

【问题讨论】:

【参考方案1】:

这应该可行:

qs = Model1.objects.filter(Q(model2__id=search) | Q(id=search))

如果你正在寻找id__icontains,我会重新审视实现

如果您搜索 1,那么它会查找 111121166...,(其中包含 1 的任何 id)这可能不是您想要的。

要特别指出你的错误,

Q(model2.id__icontains=search)

应该是

Q(model2__id__icontains=search)

【讨论】:

django 查询具有外键的模型,检查该外键的属性

】django查询具有外键的模型,检查该外键的属性【英文标题】:djangoqueryamodelthathasaforeignkey,checkingapropertyofthatforeignkey【发布时间】:2020-11-1511:53:22【问题描述】:假设我有两个模型,model_0和model_1model_0定义如下defmodel_0:...foreign_ke... 查看详情

如何使用 Flask-SQLAlchemy 使用 csv 填充具有外键的模型?

】如何使用Flask-SQLAlchemy使用csv填充具有外键的模型?【英文标题】:HowtopopulateamodelhavingforeignkeyusingcsvusingFlask-SQLAlchemy?【发布时间】:2013-05-0418:04:47【问题描述】:我有2个模型类如下:classDomain(db.Model):__tablename__=\'domain\'id=db.Colu... 查看详情

返回具有所有外键的行

...gnkeys【发布时间】:2020-07-2420:23:12【问题描述】:我正在使用sqlalchemy,我有一个地方模型和一个过程模型。Places和Procedures之间是多对多的关系,每个Places有多个Procedure,一个Procedure可以由多个Places完成。目前我有一个简单的查... 查看详情

Django 和具有多个外键的模型

...的功能印象深刻。我正在玩更复杂的模型,但我无法正确使用它们。使用Django1.3,我正在尝试编写一个摘要页面,该页面将显示以下具有以下结构的三个模型。换言之,包含目的地和活动的旅行列表。行程1目的地1目的地2活 查看详情

具有未知外键的 SQLite 查询

...】:2017-06-1310:56:18【问题描述】:我正在vb.net应用程序中使用SQLite数据库。数据库应该存储许多变量的时间序列数据。现在我正在尝试使用以下2个表构建数据库:表变量名称:CREATETABLEIFNOTEXISTSvarNames(idINTEGERPRIMARYKEY,varNameTEXT 查看详情

django 具有相同外键的多个模型

...以跟踪各种客户的合同、位置和产品。合同、位置每个都使用ForeignKey引用客户端。classLocation(models.Model):client=models.ForeignKey(Client,on_dele 查看详情

django:如何从包含外键的多个模型中制作一个表单

】django:如何从包含外键的多个模型中制作一个表单【英文标题】:django:Howtomakeoneformfrommultiplemodelscontainingforeignkeys【发布时间】:2011-03-0502:01:16【问题描述】:我正在尝试在一个页面上制作一个使用多个模型的表单。模型相互... 查看详情

django模型在具有外键的字段中没有列错误

】django模型在具有外键的字段中没有列错误【英文标题】:djangomodelnocolumnerrorinafieldwithforeignkey【发布时间】:2020-09-0921:43:00【问题描述】:我有自定义用户模型classUser(AbstractUser):modelfields和另一个模型,它有一个与用户有外键关... 查看详情

如何在不同的数据库中使用带有外键的 django 模型?

】如何在不同的数据库中使用带有外键的django模型?【英文标题】:HowtousedjangomodelswithforeignkeysindifferentDBs?【发布时间】:2011-10-1310:04:44【问题描述】:我有2个模型用于2个不同的数据库:数据库是手动创建的,但它应该没有任... 查看详情

关于 Q 对象和外键的谜题

】关于Q对象和外键的谜题【英文标题】:ApuzzleconcerningQobjectsandForeignKeys【发布时间】:2010-12-2106:57:51【问题描述】:我有一个这样的模型:classThing(models.Model):property1=models.IntegerField()property2=models.IntegerField()property3=models.IntegerField... 查看详情

Django ORM - 我可以使用 ID 以外的其他列创建具有外键的新对象吗?

】DjangoORM-我可以使用ID以外的其他列创建具有外键的新对象吗?【英文标题】:DjangoORM-CanIcreateanewobjectwithaforeignkeyusingadifferentcolumnotherthanID?【发布时间】:2021-01-1619:13:46【问题描述】:我检查了一下,找不到任何我正在寻找的示... 查看详情

在 Django 中使用 Q 查询外键值

】在Django中使用Q查询外键值【英文标题】:QueryingwithforeignkeyvaluesinDjangowithQ【发布时间】:2016-03-3109:34:09【问题描述】:我有一个Restaurant模型和一个与Restaurant有外键关系的Schedule模型。我目前正在尝试查询目前正在营业的餐厅... 查看详情

Python:如何在我的 Django 模板中传递外键的值?

】Python:如何在我的Django模板中传递外键的值?【英文标题】:Python:HowtopassthevalueofaforeignkeyinmyDjangotemplate?【发布时间】:2016-11-2216:15:38【问题描述】:我创建了一个投标模型,以便类型2用户可以对类型1用户创建的某些“帖子... 查看详情

where 从具有列外键的表中查询

】where从具有列外键的表中查询【英文标题】:wherequeryfromtablewithcolumnforeignkey【发布时间】:2017-05-1513:29:34【问题描述】:我有表列表和城市,列表有一个城市的关系。有两个输入,第一个输入是查看列表名称,第二个输入是查... 查看详情

从具有多个外键的模型到另一个表的同一列实现分组

】从具有多个外键的模型到另一个表的同一列实现分组【英文标题】:Realizeagroupbyfromamodelhavingmultipleforeignkeystothethesamecolumnofanothertable【发布时间】:2021-06-1117:19:32【问题描述】:以下情况ModelA(django.db.models.Model):abc=ForeignKey(\'model... 查看详情

如何将具有外键的列修改为 null?

】如何将具有外键的列修改为null?【英文标题】:HowdoImodifyacolumntonullthathasforeignkey?【发布时间】:2019-06-1805:53:44【问题描述】:我必须将user_id列的类型从accounts改为nullable,但它是用户id列的外键,应该如何正确完成?我正在与... 查看详情

具有该实体外键的学说实体

...ies我需要用外键创建一个表。我的班级没有创建此密钥。如何更改此类以使用“doctrine:schema:create”创建具有外键的表 查看详情

`peewee`如何获取外键的父模型

】`peewee`如何获取外键的父模型【英文标题】:`peewee`howtogettheparentmodelofaforeignkey【发布时间】:2020-11-2618:49:47【问题描述】:假设我创建了几个pweeweelink模型db=SqliteDatabase(\'people.db\')classPerson(Model):name=CharField()birthday=DateField()classMe... 查看详情