Python Django数据库重复
我不知道如何诊断我的这个问题,但我相信我的Postgres数据库中有重复的表。我之所以这样说,是因为当我进入我的管理页面时,我看到了Python Django数据库重复,python,django,postgresql,mezzanine,Python,Django,Postgresql,Mezzanine,我不知道如何诊断我的这个问题,但我相信我的Postgres数据库中有重复的表。我之所以这样说,是因为当我进入我的管理页面时,我看到了项目表中的条目,它们也是博客文章表的一部分。我想把这些分开。我在尝试搜索我的博客时也发现了问题。以下是错误消息: Exception Type: VariableDoesNotExist Exception Value: Failed lookup for key [username] in '' 这让我相信搜索算法在查找重复项时遇到了问题,特别是因为在我的搜索结
项目
表中的条目,它们也是博客文章
表的一部分。我想把这些分开。我在尝试搜索我的博客时也发现了问题。以下是错误消息:
Exception Type: VariableDoesNotExist
Exception Value: Failed lookup for key [username] in ''
这让我相信搜索算法在查找重复项时遇到了问题,特别是因为在我的搜索结果中根本找不到博客文章。仅找到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
这些模型继承自夹层CMS提供的BlogPost
对象。我直接复制了视图,并用它创建了新的项目
对象
以下是夹层提供的搜索功能:
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)
我看到我的项目表中的条目也是blog post表的一部分
这令人担忧,但这可能只是过去的一个小插曲。一般来说,将数据从一个表复制到另一个具有不同列的不相关表需要一些定向的工作
您的数据库存在于服务器机器上的某个位置,或者它位于云上的另一台服务器上,这些信息可能位于您的配置文件中,或者是localhost:5432
的默认值。如果它位于本地计算机上或可公开访问,则可以使用DataGrip之类的工具登录并浏览表。或者,您可以使用它所在机器上的shell登录到postgres并直接运行查询
我猜这不是你的问题,你可以删除坏数据
对于搜索问题,我们需要查看代码以确定其不起作用的原因。你能添加你的模型和搜索代码吗?我已经从数据库中删除了对象,看看这是否能解决问题。但这并不能解决问题。我一直在想,当我最初迁移模型时,我的项目
对象是否以某种方式变成了博客文章
。此后,我添加了一些代码。谢谢你的回复,亚历克斯!