我正在构建一个BlogApp,我试图在exclude('wordlist.txt')的位置添加wordlist.txt
我想做的是:-
我根据单词构建了排除帖子的功能,例如:-如果一个帖子包含单词"Bad“,那么就排除该帖子如下:-
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单词。
例如:-
posts = Post.objects.exclude(description__contains=wordlist.txt)(上面的例子只是为了解释,我想做什么)
---------EDITED---------
我试着先读取文件,然后输入exclude query,比如:-
views.py
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
good但当我到浏览器时,不幸的是,这是显示所有的帖子,但不排除。
我不知道该怎么做。
任何帮助都将不胜感激。
先谢谢你
发布于 2021-05-06 12:08:41
您需要读取文件wordlist.txt,然后创建一个包含其中单词的列表。
with open('wordlist.txt') as in_file:
wordlist = in_file.read().splitlines() // assuming that your file contains a word per line然后,在查询中,您可以将wordlist用作:
posts = Post.objects.exclude(reduce(operator.and_, (Q(description__contains=x) for x in wordlist)))https://stackoverflow.com/questions/67414065
复制相似问题