Does the corresponding request not exist?

This 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 mistake:

 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 the open tickets. When I click on one of these tickets, he should open it. Instead, when I try to open it, I get this error. What's happening? 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() 

Here is the template code:

 {% block title %}Tickets: {{project.name}}{% endblock %} {% block main %} <div id="project-nav"> <span><a href="/project/{{project.slug}}/">Tickets</a></span> <span><a href="/book/{{book.slug}}{{book.name}}">Docs</a></span> <span><a href="/project/{{project.slug}}/browse">Browser</a></span> </div> <div id="action-nav"> {% block actions %} <span><a href="/project/{{project.slug}}/tickets/create">Create Ticket</a></span> <span><a href="/project/{{ project.slug }}/tickets/recent">Recent Activity</a> </span> <span><a href="/project/{{ project.slug }}/tickets/my/">My Tickets</a></span> {% endblock %} </div> {% for ticket in tickets %} <div class="ticket"> <div class="ticket-header"> <div class="ticket-title"> <a href="/project/ticket/{{ticket.pk}}">{{ticket.subject}}</a> </div> <div id="ticket-number"> #{{ticket.pk}} </div> <div id="ticket-state"> {{ticket.get_state_display}} </div> <div id="ticket-info"> Reported by {{ticket.created_by}} | created: {{ticket.created_on }} | modified: {{ticket.modified_on}} </div> </div> </div> {% endfor %} </div> {% endblock %} 

It seems that all I'm trying to do is get back to this, and I don't understand why. What am I missing? Many thanks!

+6
source share
1 answer

It says that there is no Project object whose slug is equal to project_slug .

You must catch the exception as below

 try: Project.objects.get(slug=project_slug) except Project.DoesNotExist: raise sth... 
+15
source

Source: https://habr.com/ru/post/891810/


All Articles