我终于把我的项目发布到了生产阶段,突然间我在开发阶段我从来没有处理过一些问题。
@H_403_4@Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py",line 111,in get_response
response = callback(request,*callback_args,**callback_kwargs)
File "home/ubuntu/server/opineer/comments/views.py",line 103,in comment_expand
comment = Comment.objects.get(pk=comment_id)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/manager.py",line 131,in get
return self.get_query_set().get(*args,**kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py",line 366,in get
% self.model._Meta.object_name)
DoesNotExist: Comment matching query does not exist
真正令我感到沮丧的是,该项目在本地环境中工作正常,此外,数据库中存在匹配的查询对象DOES。
现在我怀疑用户在保留给其他用户时正在访问数据库,但无法证明我的观点,也没有任何解决方法。
有人有这样的问题吗?关于如何解决这个问题的任何建议?
非常感谢您的帮助。
编辑:我已经使用从我收到的服务器错误电子邮件中检索到的相同信息手动查询数据库。我没有任何问题就能打入这个条目。此外,似乎完全相同的行为,用户执行不会在大多数时间内引起任何问题,而是在某些(这是尚未知的)情况下。总而言之,这绝对不是数据库中缺少的条目的问题。
解决方法
你的行提高错误在这里:
@H_403_4@comment = Comment.objects.get(pk=comment_id)
您尝试访问不存在的注释。
@H_403_4@from django.shortcuts import get_object_or_404 comment = get_object_or_404(Comment,pk=comment_id)您的用户不会在您的服务器上发生错误,而是会尝试访问非现有资源的404意义。
好吧,到这里我想你知道这个。
有些用户(而我也是其中的一部分)让标签片长时间运行,如果用户有权删除数据,可能会发生。处理已删除资源错误的404错误可能会比将电子邮件发送给管理员更好。