django - 基于 django 中一对多关系的字段连接过滤模型
问题描述
假设我有一些这样定义的模型:
Class Document(models.Model):
pass
Class Paragraph(models.Model):
text = models.CharField(max_length=2000)
document = models.ForeignKey(Document, related_name="paragraphs")
我想找到所有在其任何段落文本字段中包含“foo”一词的文档。
就像是:
Document.objects.annotate(text=[Concatenation of all paragraphs text]).filter(text__icontains='foo')
我将如何以 Django 的方式解决这个问题,而不是编写直接的 SQL 查询。
解决方案
这个怎么样:
queryset = Paragraph.objects.filter(text__icontains='foo')
text = ''.join(obj.text for obj in queryset)
推荐阅读
- laravel - 如何在 Laravel 中使用 exclude_if 验证数据字段?
- powerbi - 需要在 power bi 报告中应用公式
- python - 如何使用 Python 检查 MapR 卷是否存在?
- ios - 使用带有 Bloc 模式崩溃的 EasyRefresh 颤动
- python - 修剪列表的元素
- jquery - Select2 在选择上打开下拉菜单
- python - 在python中的图像中插入波斯文本,UnicodeEncodeError:'latin-1'编解码器无法编码位置0-4中的字符:序数不在范围内(256)
- php - 如何从laravel中的文本中提取base64图像?
- amazon-web-services - 将策略分配给用户组访问的 aws 函数时出错
- unit-testing - 有没有办法检查一个函数是否从 phpunit 中的两个给定数字中返回一个?