'KeyError at /sss/edit/ 'pk'

Hello I get this error:

KeyError at /sss/edit/
'pk'

I know KeyError mean there's no key in a dict but I don't understand why it's giving me this error here.

Here's my code:

class PostUpdateView(UpdateView):
     model = Post
     form_class = PostForm
     template_name = 'main/edit.html'

     def form_valid(self, form):
            self.object = form.save(commit=False)
            # Any manual settings go here
            self.object.save()
            return HttpResponseRedirect(self.object.get_absolute_url())

     @method_decorator(login_required)
     def dispatch(self, request, *args, **kwargs):
        post = Post.objects.get(pk=kwargs['pk'])
        if request.user.has_perm('main.change_post') and post.created_by == request.user:
            return super(PostUpdateView, self).dispatch(request, *args, **kwargs)
        else:
            return http.HttpForbidden()

I get error from post=Post.objects.get(pk=kwargs['pk'])

I have this model as well

class Post(models.Model):
    pub_date = models.DateTimeField(auto_now_add = True)


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source