Django 外键值的精确匹配

2024-01-23

class Sentence(Model):
    name = CharField()

class Tokens(Model):
   token = CharField()
   sentence = ForeignKey(Sentence, related_name='tokens')
  1. 我想实现两种情况:句子恰好由三个组成 代币['I', 'like', 'apples']。所以列表sentence.tokens.all()正是['I', 'like', 'apples'].

  2. 与上面相同,但包含标记(句子的一部分)。

Sentence.objects.annotate(n=Count('tokens',distinct=True)).filter(n=3).filter(tokens__name='I').filter(tokens__name='like').filter(tokens__name='apples')不起作用,因为它匹配I I I以及。

有什么方法可以过滤外键中的精确值集吗?


啊,我现在更好地理解这个问题了。只需利用您和 Jay 的代码元素,以下可能是一种方法。可能不太优雅。但似乎有效。

def get_sentences(my_tokens):
    counts = dict()
    for t in my_tokens:
        counts[t] = my_tokens.count(t)
    results = Sentence.objects
    for k, v in counts.iteritems():
        results = results.filter(tokens__token=k).annotate(n=Count('tokens',distinct=True)).filter(n__gte=v)
    return results

>>> from django.db.models import Count
>>> from my.models import Sentence, Tokens

>>> s1 = Sentence.objects.create(name="S1")
>>> t10 = Tokens.objects.create(token="I", sentence=s1)
>>> t20 = Tokens.objects.create(token="like", sentence=s1)
>>> t30 = Tokens.objects.create(token="apples", sentence=s1)

>>> s2 = Sentence.objects.create(name="S2")
>>> t11 = Tokens.objects.create(token="I", sentence=s2)
>>> t21 = Tokens.objects.create(token="like", sentence=s2)
>>> t31 = Tokens.objects.create(token="oranges", sentence=s2)

>>> s3 = Sentence.objects.create(name="S3")
>>> t31 = Tokens.objects.create(token="I", sentence=s3)
>>> t32 = Tokens.objects.create(token="I", sentence=s3)
>>> t33 = Tokens.objects.create(token="I", sentence=s3)

>>> my_toks = ("I", "like", "apples")
>>> sentences = get_sentences(my_toks)
>>> sentences[0].name
u'S1'

>>> my_toks = ("I", "I", "I")
>>> sentences = get_sentences(my_toks)
>>> sentences[0].name
u'S3'

为了准确参考,我的模型如下所示:

class Sentence(Model):
    name = models.CharField(max_length=16)

class Tokens(Model):
    token = models.CharField(max_length=16)
    sentence = models.ForeignKey(Sentence, related_name='tokens')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 外键值的精确匹配 的相关文章

  • pip install django_compressor 时命令 cl.exe 失败

    我发布此消息是因为我遇到了这个问题 并且已经尝试解决这个问题好几天了 但未能成功 当我尝试安装 django compressor pip install django compressor 时 我遇到以下错误 请参阅附件 我在网上搜索解决
  • Django Channels Postgres InterfaceError:连接已关闭

    我似乎无法理解这里的问题 我正在为我的渠道消费者编写测试文档中的描述 https channels readthedocs io en latest topics testing html 我通常会使用 Django 默认的单元测试 但由于
  • 如何使用 celery 和 Django 以编程方式生成 celerybeat 条目

    我希望能够以编程方式生成 celerybeat 条目并在添加条目时重新同步 celerybeat 文档here http ask github com celery userguide periodic tasks html state 默
  • Django - 渲染到字符串无法加载 CSS

    我正在尝试使用 Django 1 8 render to string 通过管理命令将 html 转换为 pdf 而不是使用 View request 以下代码可以将模板转换为 pdf 但它无法将 CSS 加载到模板中 def html t
  • Django 跨反向关系聚合

    鉴于这两个模型 class Profile models Model user models ForeignKey User unique True verbose name user about models TextField abou
  • 您将如何创建“手动”django 迁移?

    我发现我可以使用 django 项目中的 postgres 数据库设置列的默认值migrations RunSQL some sql 我目前正在通过添加列 makemigrations 然后删除列 makemigrations 然后手动修改
  • 如何向 Django 管理添加报告部分?

    我想在 Django 管理中实现一个报告部分 这意味着在管理主页中添加一个自定义部分 我将看到报告列表 而不是模型列表 我想使用 Django 的管理表 其中包括过滤器 排序以及所有可能的功能 实现这一目标的 最佳 方法是什么 我意识到这是
  • 对(静态)CSS 文件所做的更改未反映在 Django 开发服务器中

    我正在使用 Django 制作一个 Web 应用程序 但在将 CSS 文件 存储在我的应用程序的静态目录中 中所做的更改反映到开发服务器上时遇到了一些问题 需要明确的是 服务器能够访问静态文件 但是 它目前停留在我的 CSS 文件的旧版本上
  • 如何阻止 Django 中发生级联删除?

    我的 Django 应用程序中有三个模型类 class Folder models Model folder models ForeignKey Folder null True blank True related name folder
  • 简单的 Django 图像上传 - 图像文件不保存

    是的 我正在学习如何制作一个简单的图像上传表单以将图像上传到 MEDIA ROOT 表单呈现良好 我没有收到任何错误 但该文件未显示在 MEDIA ROOT 目录中 如果遵循文档示例但无法使其工作 我知道这是因为我没有正确理解 django
  • Django 模型 - 外键作为主键

    我有以下2张表 在 models py 中 class Foo models Model uuid models CharField UUID primary key True default uuid4 and class FooExt
  • 表单提交后 Django 重定向不起作用

    Django 新手 所以这个可能有一个非常简单的答案 但我一生都找不到具体的解决方案 我只是想在使用 FileField 提交表单后重定向到新的 URL 我可以单独导航到该 URL 效果很好 文件上传正确 因此我知道它已正确验证 但重定向返
  • 是否有模型 MultiField(在 Django 中组合数据库模型字段的任何方法)?或者为什么这不是一个有用的概念?

    在构建 Django 应用程序时 我们接触到了 表单 MultiValueField and MultiWidget 它们似乎是一种有趣的方法来组成各自的基类 从而提供更多的模块化性 然而 现在在我们看来 真正能让这两个人大放异彩的作品将是
  • Django:单击按钮加载另一个模板

    我已经在 django 项目上工作了几个星期 只是玩玩以便掌握它的窍门 我有点困惑 我现在有一个名为 home html 的模板 我想知道是否可以将另一个名为 profile html 的模板设置为 home html 模板上的链接 我有一
  • django RequestFactory 文件上传

    我尝试使用 RequestFactory 创建请求并使用文件发布 但我没有收到 request FILES from django test client import RequestFactory from django core fil
  • Django查询:如何过滤对象以排除列表中的id?

    如何在查询中进行过滤 以便结果排除 ID 属于列表的任何对象实例 可以说我有 object id list 1 5 345 MyObject objects filter Q time gte datetime now Q what to
  • Django 将对象从视图传递到下一个进行处理

    如果您有 2 个视图 第一个视图使用 modelform 获取用户输入的信息 出生日期 姓名 电话号码等 第二个视图使用此信息创建表 如何将第一个视图中创建的对象传递到下一个视图 以便可以在第二个视图的模板中使用它 如果您能分享任何帮助 我
  • Django 子应用程序和模块结构

    我正在开发一个 Django 应用程序 这是一个大型系统 需要多个子应用程序来保持整洁 因此 我有一个顶级目录 它是 Django 应用程序 因为它有一个空的models py文件 和多个子目录 它们本身也是应用程序 我以这种方式布局应用程
  • Django 模型字段默认基于另一个模型字段

    我使用 Django Admin 构建一个管理站点 有两张表 一张是ModelA其中有数据 另一个是ModelB里面什么也没有 如果一个模型字段b b in ModelB为None 可以显示在网页上 值为ModelA的场a b 我不知道该怎
  • Django - 隐藏内联标签

    如何在 Django 内联中隐藏标签 当我理解正确时 您可以通过添加属性将 verbose name 设置为模型中的空字符串 verbose name 到你的领域就像 street models CharField max length 5

随机推荐

  • 获取日期格式/文化

    如何指定输入字符串的哪一部分是日期和月份 如果输入是01 10 2017 这可以读作2017 年 10 月 1 日 and 2017 年 1 月 10 日 两者都是正确的 我想明确表示01是日期并且10是月份 这样无论区域设置和时间格式如何
  • ngForIn 可以在 Angular 4 中使用吗?

    我正在尝试使用迭代对象的属性 ngFor但使用in 当我尝试这样做时 Controller selector sample controller template ul li b i b obj i li ul class SampleCo
  • HTML/CSS:如何为 tr 创建滚动条

    有人可以告诉我如何为内表创建滚动条吗 内表不显示在容器内 我将容器的背景涂成黄色 桌子本身是蓝色的 我想在表格内看到一个滚动条 Source http nopaste info e51385254e html http nopaste in
  • java中如何实现国际化

    我有一堂课叫Info 我有一堆static String其中描述的变量 public class Info public static stringOne Hello public static stringTwo world 我希望访问这
  • 你明白这个僵局吗?

    我的 GUI 使用 wxPython 在里面AppLogic类我有一个工作线程 它在这个类的方法中运行 这是GUI class class GUI wx app None main window None app logic None de
  • SharpDX、DirectWrite 和 Windows 窗体

    可以使用 DirectWrite 将文本渲染到 WinForm 应用程序中的 PictureBox 中吗 我正在使用 SharpDX 并浏览了 DirectWrite 示例 试图构建最简单的工作案例 我创建了一个表单并只向其中添加了一个图片
  • 根据列值分割大型 csv 文本文件

    我的 CSV 文件有多列已排序 例如 我可能有这样的行 19980102 PLXS 10032 Q A 15 12500 15 00000 15 12500 2 19980105 PLXS 10032 Q A 14 93750 14 750
  • C++ 中单例的线程安全惰性构造

    有没有一种方法可以在 C 中实现单例对象 以线程安全的方式延迟构造 两个线程可能同时是单例的第一个用户 它仍然应该只构造一次 不依赖于预先构造的静态变量 因此在构造静态变量期间单例对象本身可以安全使用 我不太了解我的C 但是在执行任何代码之
  • 使用 maven-compiler-plugin 排除包适用于一个包,但不适用于另一个包

    我的项目具有以下包结构 src com my app school course Course java com my app school course free CourseFree java 我使用Maven来构建项目 在我的pom
  • 使用 Stateful Session Bean 来跟踪用户的会话

    这是我的第一个问题 我希望我做得对 我需要从事 Java EE 项目 因此 在开始之前 我尝试做一些简单的事情 看看是否能做到 我被困住了有状态会话 Bean 这是问题 我怎样才能使用SFSB跟踪用户的会话 我看到的所有例子最终都 放入 S
  • UIBezierPath:roundedRect:byRoundingCorners:cornerRadii:行为怪异

    我正在尝试将按钮的两个角变成圆形 如果我像这样选择 TopLeft 和 BottomLeft let bezierDisableAdsPath UIBezierPath roundedRect disableAdsButton bounds
  • Gitlab Pages:无法验证域所有权

    今天早上 我收到了针对托管在自定义域上的每个 Gitlab 页面的电子邮件 称域验证失败 没关系 因为我认为我一开始就没有验证过它们 Gitlab 很好地实现了这一点 当我转到每个存储库的 设置 gt 页面 gt Domain Detail
  • 一个 SVG 文件,里面有很多 SVG 渐变

    我正在制作一组使用动态渐变的按钮 我已经通过使用 Firefox 3 6 和 WebKit 专有的 CSS 扩展来处理它们 我所需要做的就是使用 background image url gradient svg 支持 Opera iOS
  • phpExcel:无法加载资源:net::ERR_CONNECTION_RESET

    我实际上使用 phpExcel 来获取一个 excel 文件 我用一个命令从用户那里恢复该文件
  • Shiny 未检测到shiny:inputchanged 事件

    如果应用程序能够检测到上次单击或更新的小部件的 ID 那么我为闪亮的应用程序设计所采用的方法将是最简单的 This https stackoverflow com q 72061061 7742981问题的出现解决了问题 然而 当我使用接受
  • 从 Rails3-jquery-autocomplete 自定义列表

    我有一个hotel模型及其属性是 id hotel name address searchable 当我设置可搜索时false对于特定酒店 当我在搜索字段中输入时 该酒店不应出现在下拉列表中 控制器是 class HotelsControl
  • 表情符号字符变灰(HTML / CSS)

    我当前的问题是我正在尝试将带有表情符号的按钮灰显 尽管如此 由于表情符号的性质 似乎无法使用 HTML CSS 属性更改颜色 I e
  • xib 文件的 iPhone 本地化

    我刚刚熟悉 xib 文件的本地化 想知道是否有一种方法可以通过直接引用 plist 来本地化 xib 中的字符串 欣赏一些想法 如果您不想直接本地化 xib 文件 则可以将它们包含的文本提取到 strings 文件中 并且在翻译 strin
  • 如何使用node.js测试文件权限?

    如何检查正在运行的 Node js 进程对给定文件的权限 读 写 执行 我希望fs Stats object http nodejs org docs latest api fs html fs class fs stats有一些有关权限的
  • Django 外键值的精确匹配

    class Sentence Model name CharField class Tokens Model token CharField sentence ForeignKey Sentence related name tokens