如何根据Django中相同模型的其他字段ID过滤字段值

     2023-02-24     236

关键词:

【中文标题】如何根据Django中相同模型的其他字段ID过滤字段值【英文标题】:how to filter field values based on other field id of same model in Django 【发布时间】:2021-11-03 15:23:48 【问题描述】:

这里我要过滤每个组的所有项目

让我们将我的模型视为

class ItemsList(models.Model):
   invoice_number = models.IntegerField(blank=True, null=True)

class ItemsInvoice(models.Model):
    items = models.ForeignKey(ItemsList)

class StockItems(models.Model):
     item_invoice = models.ForeignKey(ItemsInvoice, blank=True, null=True)
     group_id = models.IntegerField(blank=True, null=True)

例如,让我们将我的数据库值视为:

item_invoice    |    group_id
 
 2206           |   1
 2207           |   1
 2208           |   2
 2209           |   3
 2210           |   4
 2211           |   4
 2212           |   4
 2213           |   5

现在我该如何编写基于 group_id 过滤 item_invoice 并基于此 item_invoice id 过滤项目并基于这些项目 id 过滤 invoice_number 的过滤语句

【问题讨论】:

我仍然不清楚你的目标是什么。 您是否要获取带有item_invoiceStockItems 与相关的IntemsList 发票号。 基于 StockItems 的 group_id 我需要首先获取 item_invoice 的 items_id 到相关的 IntemsList 发票号 所以如果你用group_id = 4查询,那么你想检索id为221022112212InvoiceItems? 我不清楚invoice_number 在这里做什么,因为StockItemsItemInvoice 之间存在直接联系。因此,这意味着无需查看 ItemsList 即可查询关系。 【参考方案1】:

你可以通过过滤相关StockItemsgroup_id来过滤ItemInvoices:

ItemsInvoice.objects.filter(stockitems__group_id=<em>my_group_id</em>).distinct()

其中 my_group_id 是我们正在寻找的group_id。如果有多个StockItems 对象链接到同一个ItemsInvoicegroup_id,那么由于.distinct() [Django-doc] 调用,我们将只为每个ItemsInvoice 检索一个实例。

【讨论】:

Django Rest Framework如何根据ID保存具有相关字段的模型

】DjangoRestFramework如何根据ID保存具有相关字段的模型【英文标题】:DjangoRestFrameworkhowtosaveamodelwithRelatedFieldbasedonID【发布时间】:2015-01-1716:17:31【问题描述】:我对DRF有点陌生。我的Record模型看起来像这样:classRecords(models.Model):o... 查看详情

Django admin 根据另一个字段值过滤一个外部字段

】Djangoadmin根据另一个字段值过滤一个外部字段【英文标题】:Djangoadminfilteraforeignfieldbasedonanotherfieldvalue【发布时间】:2019-03-2213:41:22【问题描述】:在我的django应用程序的管理面板中,当我为我的表添加/编辑表单时,我有两个... 查看详情

如何根据 django 模板中的日期过滤列表

】如何根据django模板中的日期过滤列表【英文标题】:Howtofilteralistaccordingtodateintemplatesindjango【发布时间】:2015-03-0913:03:58【问题描述】:我有一个模型志愿者,其中有一个字段“registered_at=models.DateTimeField()”。我正在将志愿者... 查看详情

如何强制 Django 模型中的 2 个字段共享相同的默认值?

】如何强制Django模型中的2个字段共享相同的默认值?【英文标题】:HowcanIforce2fieldsinaDjangomodeltosharethesamedefaultvalue?【发布时间】:2016-06-1304:59:24【问题描述】:我有一个Django模型MyModel,如下所示。它有两个DateTimeField类型的字段... 查看详情

根据值在 Admin 中自定义 Django 表单字段

...minBasedonValue【发布时间】:2011-06-1508:14:56【问题描述】:如何根据表单字段的值在Django的管理中自定义表单的显示?例如,我有一个默认值为“0”的字段。如果该字段已设置为非零值,我想在表单上显示一个额外的“编辑”链... 查看详情

如何根据 Django 表单中的登录用户过滤值?

】如何根据Django表单中的登录用户过滤值?【英文标题】:HowdoIfiltervaluesaccordingtologgedinuserinDjangoforms?【发布时间】:2021-05-0817:35:36【问题描述】:我有Rank、UserProfile和Company模型。这些类与外键相连。排名为“Lead”的用户可以从... 查看详情

Django如何过滤多对多字段中的对象,而不是原始查询集

】Django如何过滤多对多字段中的对象,而不是原始查询集【英文标题】:Djangohowtofilterobjectsinmanytomanyfield,nottheoriginalqueryset【发布时间】:2018-01-0316:10:48【问题描述】:我正在尝试过滤查询集的多对多字段中的对象并且遇到困难... 查看详情

使用可变数量的参数过滤多个 Django 模型字段

】使用可变数量的参数过滤多个Django模型字段【英文标题】:FiltermultipleDjangomodelfieldswithvariablenumberofarguments【发布时间】:2018-09-3012:33:45【问题描述】:我正在实现搜索功能,其中包含通过匹配多个表和这些表中的多个字段来查... 查看详情

Django:根据其他字段更新字段值

】Django:根据其他字段更新字段值【英文标题】:Django:UpdateFieldValueBasedonOtherFields【发布时间】:2011-04-0400:13:08【问题描述】:如果不修改管理界面,我不确定这是否可行。我有一个名为“Quote”的模型,它可以包含多个“Product... 查看详情

如何通过多对多字段(精确匹配)中的对象过滤 django 模型?

】如何通过多对多字段(精确匹配)中的对象过滤django模型?【英文标题】:Howtofilterdjangomodelbyitsobjectsinmany-to-manyfield(exactmatch)?【发布时间】:2012-11-1504:59:54【问题描述】:我的代码中有这个模型:classConversation(models.Model):partici... 查看详情

如何将类、id、占位符属性添加到 django 模型表单中的字段

】如何将类、id、占位符属性添加到django模型表单中的字段【英文标题】:Howtoaddclass,id,placeholderattributestoafieldindjangomodelforms【发布时间】:2013-10-2915:51:13【问题描述】:我有一个像下面这样的django模型models.pyclassProduct(models.Model):... 查看详情

在 Django 中,我如何根据两个模型中的字段自动创建多对多条目

】在Django中,我如何根据两个模型中的字段自动创建多对多条目【英文标题】:InDjangohowIcancreateautomaticallyamanytomanyentrybasedonafieldfoundintwomodels【发布时间】:2022-01-0911:25:13【问题描述】:我有以下模型示例:classTestSet(models.Model):na... 查看详情

如何在 Django 会话模型中设置自定义字段?

】如何在Django会话模型中设置自定义字段?【英文标题】:HowtosetacustomfieldinaDjangosessionmodel?【发布时间】:2017-06-1523:33:33【问题描述】:我已经根据this延长了Django中的会话。总之,我添加了一个名为account_id的字段来保存会话所... 查看详情

如何以 django 形式过滤多对多字段

】如何以django形式过滤多对多字段【英文标题】:Howtofiltermanytomanyfieldindjangoform【发布时间】:2021-07-1010:35:41【问题描述】:我有一个模型选举,它有一个与候选模型有多对多关系的“候选人”字段和一个与区域模型有一对多关... 查看详情

如何根据在模型级别定义的枚举字段在 Django Modelform 中呈现单选按钮选择?

】如何根据在模型级别定义的枚举字段在DjangoModelform中呈现单选按钮选择?【英文标题】:HowtorenderaradiobuttonchoiceinDjangoModelformbasedonenumfielddefinedatthemodellevel?【发布时间】:2020-03-1603:45:43【问题描述】:我在模型级别定义了一个... 查看详情

Django:过滤一个模型记录以显示其他模型的所有记录

】Django:过滤一个模型记录以显示其他模型的所有记录【英文标题】:Django:Filteringonemodelsrecordstoshowallrecordsofothermodel【发布时间】:2020-02-0302:52:28【问题描述】:我正在尝试从我的模型主题中过滤所有主题,然后从我的其他模型... 查看详情

如何使用 django rest 框架在模板中获取模型选择字段名称而不是 id

】如何使用djangorest框架在模板中获取模型选择字段名称而不是id【英文标题】:HowtogetModelChoiceFieldnameinsteadofidintemplateusingdjangorestframework【发布时间】:2017-01-0420:04:04【问题描述】:我在模板中获得了选择字段的ID。但我希望显示... 查看详情

如何在 Django 模板中显示我过滤对象的其他条目

】如何在Django模板中显示我过滤对象的其他条目【英文标题】:HowtodisplayotherentriesofmyfilteredobjectinDjangotemplate【发布时间】:2013-08-3002:32:41【问题描述】:在我的Django-Project中,我有一个模型,看起来像这样:classTag_car(models.Model):... 查看详情