【问题标题】:Project Matching Query Does Not Exist Error?项目匹配查询不存在错误?
【发布时间】:2011-09-25 09:10:11
【问题描述】:

这是视图:

def showProject(request, project_slug):
project = Project.objects.get(slug=project_slug)
tickets = Ticket.objects.filter(project=project)
payload = { 'project':project, 'tickets':tickets }
return render(request, 'project/project.html', payload)

这是错误:

追溯: get_response 中的文件“C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\core\handlers\base.py” 111. 响应 = 回调(请求,*callback_args,**callback_kwargs) showProject 中的文件“C:\project\views.py” 13. 项目 = Project.objects.get(slug=project_slug) 获取文件“C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\db\models\manager.py” 132. return self.get_query_set().get(*args, **kwargs) 获取文件“C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\db\models\query.py” 349. % self.model._meta.object_name)

异常类型:DoesNotExist at /project/ticket/ 异常值:项目匹配查询不存在。

对预期内容的更详细说明:我有一个侧边栏,其中列出了所有打开的“门票”。当我点击其中一张票时,它应该会打开它。相反,当我尝试打开它时,我收到了这个错误。怎么了?

根据请求,这里是模型类:

class Project(models.Model):
"""simple project for tracking purposes"""
name = models.CharField(max_length = 64)
slug = models.SlugField(max_length = 100, unique=True,blank=True, null=True)
description = models.CharField(max_length = 255)
owner = models.ForeignKey(User, related_name="+")
created_on = models.DateTimeField(auto_now_add = 1)
active = models.BooleanField(default=True)
parent = models.ForeignKey("self", related_name="children", null=True, blank=True)
repository = models.ForeignKey("Repository", related_name="projects", null=True, blank=True)
book = models.ForeignKey(Book, related_name="+", null=True, blank=True)
acl = models.ManyToManyField(AclEntry)
def save (self):
    if not self.slug:
        self.slug = '-'.join(self.name.lower().split())
    if not self.book:
        book = Book(name=self.name, owner=self.owner)
        book.save()
        self.book = book
    super(Project, self).save()

似乎我尝试做的一切都回到了这个,我不明白为什么?我错过了什么?非常感谢!

【问题讨论】:

  • 另外注意,我还有一个“deleteTicket”功能,当我尝试它时,得到相同的响应。
  • 请向我们展示您的模型类。

标签: django django-views


【解决方案1】:
project = Project.objects.get(slug=project_slug)

正在引发异常 (DoesNotExist),这意味着 Project 表中没有项目的 slug 对应于 project_slug

中的值

您的 url 中的正则表达式可能是错误的,将您发送到 showProject 视图的链接可能是错误的,或者表中可能还没有与该 slug 对应的项目

【讨论】:

  • 我明白它的意思——但我不明白为什么我得到它......昨天工作得很好,我在“tickets”部分工作,不得不将其更改为“过滤器”,因此它可以迭代并处理其他一些视图。我没有接触过模板代码(它是一个扩展的 base.html 文件)。当我使用新的相应票证创建新项目时,单击它会返回相同的错误 - 即使我知道数据在那里。
  • 我在上面提到了 3 个可能的问题
猜你喜欢
  • 1970-01-01
  • 2013-07-22
  • 2015-04-20
  • 2021-07-26
  • 2021-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-27
相关资源
最近更新 更多