【发布时间】:2020-09-01 23:40:48
【问题描述】:
我不完全知道如何诊断我的这个问题,但我相信我的 Postgres 数据库中有重复的表。我之所以这么说,是因为当我转到我的管理页面时,我看到来自我的projects 表的条目也是blog post 表的一部分。我想把这些分开。我在尝试搜索我的博客时也发现了问题。以下是错误消息:
Exception Type: VariableDoesNotExist
Exception Value: Failed lookup for key [username] in ''
这让我相信搜索算法在查找重复项时遇到了问题,尤其是因为我的搜索结果中甚至都没有找到 blog posts。仅找到 project 对象。
如何查看 Postgres 数据库或进一步诊断我的问题?
编辑下面是我的模型脚本:
from django.db import models
from mezzanine.blog.models import BlogPost, BlogCategory
# Create your models here.
class Projects(BlogPost):
pass
class ProjectsCategory(BlogCategory):
pass
这些模型继承自 Mezzanine CMS 提供的 BlogPost 对象。我直接复制了视图并用它创建了新的Projects 对象。
下面是Mezzanine提供的搜索功能:
def search(request, template="search_results.html", extra_context=None):
"""
Display search results. Takes an optional "contenttype" GET parameter
in the form "app-name.ModelName" to limit search results to a single model.
"""
query = request.GET.get("q", "")
page = request.GET.get("page", 1)
per_page = settings.SEARCH_PER_PAGE
max_paging_links = settings.MAX_PAGING_LINKS
try:
parts = request.GET.get("type", "").split(".", 1)
search_model = apps.get_model(*parts)
search_model.objects.search # Attribute check
except (ValueError, TypeError, LookupError, AttributeError):
search_model = Displayable
search_type = _("Everything")
else:
search_type = search_model._meta.verbose_name_plural.capitalize()
results = search_model.objects.search(query, for_user=request.user)
paginated = paginate(results, page, per_page, max_paging_links)
context = {"query": query, "results": paginated,
"search_type": search_type}
context.update(extra_context or {})
return TemplateResponse(request, template, context)
【问题讨论】:
标签: python django postgresql mezzanine