Запрос соответствия проекта не существует ошибки? - PullRequest
2 голосов
/ 29 июня 2011

Это вид:

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)

Это ошибка:

Traceback: Файл "C: \ Python27 \ lib \ site-packages \ django-1.3-py2.7.egg \ django \ core \ handlers \ base.py" в get_response 111. response = callback (request, * callback_args, ** callback_kwargs) Файл "C: \ project \ views.py" в showProject 13. project = Project.objects.get (slug = project_slug) Файл "C: \ Python27 \ lib \ site-packages \ django-1.3-py2.7.egg \ django \ db \ models \ manager.py" в get 132. вернуть self.get_query_set (). Get (* args, ** kwargs) Файл "C: \ Python27 \ lib \ site-packages \ django-1.3-py2.7.egg \ django \ db \ models \ query.py" в get 349.% self.model._meta.object_name)

Тип исключения: DoesNotExist в / 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()

Кажется, что все, что я пытаюсь сделать, - это возвращаться к этому, и я не понимаю, почему? Что мне не хватает? Большое спасибо!

1 Ответ

2 голосов
/ 29 июня 2011
project = Project.objects.get(slug=project_slug)

вызывает исключение (DoesNotExist), означающее, что в таблице Project нет проекта с порцией, соответствующей значению в project_slug

Регулярное выражение в ваших URLможет быть неправильным, ссылка, отправляющая вас в представление showProject, может быть неправильной, или в таблице еще не было проекта, соответствующего этому слагу

...