我在wagtail django中搜索模型时遇到了一些危机
这是我的模型对象代码
recipes = RecipePage.objects.child_of(self).live().public() \
.select_related('listing_image')
extra_url_params = ''
error_message=False
filter_categories_raw = request.GET.get('categories')
filter_categories = False
filter_name = request.GET.get("name")
if filter_categories_raw:
filter_categories = []
filter_categories_raw = filter_categories_raw.split(",")
for fc in filter_categories_raw:
try:
value = int(fc)
filter_categories.append(value)
except ValueError:
filter_categories = False
error_message = "Invalid category value"
if filter_categories:
for filter_category in filter_categories:
recipes = recipes.filter(categories__category=filter_category)
if filter_name:
recipes = recipes.search(filter_name, recipes) <---- issue here
if not filter_name:
filter_name=""
我添加的RecipePage模型
search_fields = BasePage.search_fields + [
index.SearchField('title'),
]
现在当我这样做是为了搜索
recipes = recipes.search(filter_name, recipes)
这给了我错误
Can't convert 'RecipePage' object to str implicitly
当我这么做的时候
recipes = recipes.search(filter_name, recipes.title) or recipes = recipes.search(filter_name, recipes.objects)
它给了我
'PageQuerySet' object has no attribute 'title'
我醉了。我做错了什么
当你看docs for searching in Wagtail时,你会发现有两种方法可以在Wagtail中搜索,我认为你把它们弄混了。第一个是最明显的,只需将搜索词传递给QuerySet上的搜索方法。第二种方法是将搜索词和查询集传递给search_后端的搜索方法
在您的情况下:
从
search
调用中删除查询集:或:
将搜索词和查询集传递到search_后端:
从wagtail.search.backends导入获取\u搜索\u后端
相关问题 更多 >
编程相关推荐