首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在排除查询中添加wordlist.txt文件

在排除查询中添加wordlist.txt文件
EN

Stack Overflow用户
提问于 2021-05-06 07:58:49
回答 1查看 82关注 0票数 1

我正在构建一个BlogApp,我试图在exclude('wordlist.txt')的位置添加wordlist.txt

我想做的是:-

我根据单词构建了排除帖子的功能,例如:-如果一个帖子包含单词"Bad“,那么就排除该帖子如下:-

代码语言:javascript
复制
from django.db.models import Q

posts = Post.objects.exclude(Q(description__contains='bad') & Q(description__contains='bad1'))

但我试图同时排除数百个单词,当我以这种方式将它们全部添加时,它将非常冗长,我不想这样做,所以我想我可以创建一个名为wordlist.txt的文件,并将我想要排除的所有单词放在put the path of wordlist.txt in exclude query中,这样我就不必在查询中写冗长的exlcude单词。

例如:-

代码语言:javascript
复制
posts = Post.objects.exclude(description__contains=wordlist.txt)

(上面的例子只是为了解释,我想做什么)

---------EDITED---------

我试着先读取文件,然后输入exclude query,比如:-

views.py

代码语言:javascript
复制
import os
from django.conf import settings

file_ = open(os.path.join(settings.BASE_DIR, 'wordlist.txt'))

def posts_exclude(request):
    posts = Post.objects.exclude(description__contains=file_)

    context = {'posts':posts}
    return render(request, 'mains/post_exclude.html', context)

wordlist.txt

代码语言:javascript
复制
good

但当我到浏览器时,不幸的是,这是显示所有的帖子,但不排除。

我不知道该怎么做。

任何帮助都将不胜感激。

先谢谢你

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-06 12:08:41

您需要读取文件wordlist.txt,然后创建一个包含其中单词的列表。

代码语言:javascript
复制
with open('wordlist.txt') as in_file:
    wordlist = in_file.read().splitlines()  // assuming that your file contains a word per line

然后,在查询中,您可以将wordlist用作:

代码语言:javascript
复制
posts = Post.objects.exclude(reduce(operator.and_, (Q(description__contains=x) for x in wordlist)))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67414065

复制
相关文章

相似问题

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