gpt4 book ai didi

django - 字段错误: Unsupported lookup 'unaccent' for CharField or join on the field not permitted

转载 作者:行者123 更新时间:2023-12-02 06:31:09 30 4
gpt4 key购买 nike

我收到 FieldError: Unsupported Lookup 'unaccent' for CharField or join on the field not allowed。任何帮助表示赞赏。有什么想法吗?

#template
<form class="navbar-form navbar-left" method="GET" action="{% url 'search' %}" value="{{request.get.q}}">
<div class="form-group">
<input type="text" name="q" class="form-control" placeholder="Search" >
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>

#views.py
def Search(request):
queryset_list=Testimony.objects.all().order_by('timestamp')
if request.user.is_staff or request.user.is_superuser:
queryset_list=Testimony.objects.all()

print('1')
if request.method=='GET':
query=request.GET.get("q")
print('2')
queryset_list = Testimony.objects.filter(
Q(title__unaccent__lower__trigram_similar=query)|
Q(body__unaccent__lower__trigram_similar=query)|
Q(username__unaccent__lower__trigram_similar=query)
#Q(firstname__unaccent__lower__trigram_similar__icontains=query)
).distinct().order_by('timestamp')


print('3')
paginator = Paginator(queryset_list, 20)
page_request_var="page"
page=request.GET.get(page_request_var)
try:
queryset=paginator.page(page)
except PageNotAnInteger:
queryset=paginator.page(1)
except EmptyPage:
queryset=paginator.page(paginator_num.pages)

print('4')
context={
"object_list": queryset,
"title":"list",
"page_request_var":page_request_var,
}

return render(request, 'search.html', {'queryset_list':queryset_list})

回溯指向: Q(用户名__unaccent__lower__trigram_similar=query)

最佳答案

对于 Django 至少 1.11 ( source ) 和 PostgreSQL 至少 8.5 ( source )

  • 在 INSTALLED_APPS (settings.py) 中添加行 django.contrib.postgres
  • 激活unaccent扩展
    • 在 PgAdmin ( source ) 处运行 CREATE EXTENSION unaccent; 或...
    • 创建一个空迁移 (./manage.py makemigrations --empty your.application.name) 并使用以下内容编辑生成的文件 ( source ),最后运行 ./manage.py迁移:

other reference

from django.contrib.postgres.operations import UnaccentExtension

class Migration(migrations.Migration):

dependencies = [
(<snip>)
]

operations = [
UnaccentExtension()
]

琐事:它在 admin.py 中不起作用,但在其他 .py 文件中起作用。

关于django - 字段错误: Unsupported lookup 'unaccent' for CharField or join on the field not permitted,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54071944/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com