问题
This is the view:
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)
This is the error:
Traceback: File "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\core\handlers\base.py" in get_response 111. response = callback(request, *callback_args, **callback_kwargs) File "C:\project\views.py" in showProject 13. project = Project.objects.get(slug=project_slug) File "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\db\models\manager.py" in get 132. return self.get_query_set().get(*args, **kwargs) File "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\db\models\query.py" in get 349. % self.model._meta.object_name)
Exception Type: DoesNotExist at /project/ticket/ Exception Value: Project matching query does not exist.
A more detailed explanation of what is expected: I have a sidebar that lists all open "tickets." When I click on one of those tickets, it should open it. Instead when I try to open it, I am getting this error. What is happening?
Per, request, here is the model class:
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()
It seems that everything I try to do is going back to this, and I don't understand why? What am I missing? Thanks so much!
回答1:
project = Project.objects.get(slug=project_slug)
is raising an exception (DoesNotExist), meaning that there is no project in the Project table with a slug corresponding to the value in project_slug
The regex in your urls might be wrong, the link sending you to showProject view might be wrong or there mightn't be a project in the table yet corresponding to that slug
来源:https://stackoverflow.com/questions/6524981/project-matching-query-does-not-exist-error