The redirect function is not working properly.It is showing the error
NoReverseMatch at /post/new/ Reverse for 'post_detail' with arguments '()' and keyword arguments '{'pk': 9}' not found. 0 pattern(s) tried: []
this is my views.py
from django.shortcuts import render, redirect, get_object_or_404
from django.contrib.auth.models import User
from django.views.generic import View
from django.utils import timezone
from django.contrib.auth import ( 
    authenticate, 
    get_user_model, 
    login, 
    logout,
    )
from .forms import UserLoginForm, UserRegisterForm, UserForm, PostForm
from .models import Post
def login_view(request):
    if request.method == "POST":
        username = request.POST['username']
        password = request.POST['password']
        u = User.objects.get(username=username)
        posts = objects.for_user(request.user)
        if username and password:
            user = authenticate(username= username, password= password)
            if not user:
                return render(request, 'post/login.html',{'error_message': 'Incorrect username or password'})
        if not user.is_active:
            return render(request, 'post/login.html', {'error_message': 'Your account has been disabled'})
        if user.is_active:
            login(request, user)
            return render(request, 'post/home.html', {'u' : u, 'posts': posts})
return render(request, 'post/login.html')
class register_view(View):
    form_class = UserRegisterForm
    template_name = 'post/register.html'
    def get(self, request):
        form = self.form_class(None)
        return render(request, self.template_name, {'form': form}) 
    def post(self, request):
        form = self.form_class(request.POST)   
        if form.is_valid():
            user = form.save(commit=False)
            username = form.cleaned_data['username']
            password = form.cleaned_data['password']
            user.set_password(password)
            user.save()
            new_user = authenticate(username= username, password=     password)
            if new_user is not None:
                if user.is_active:        
                    login(request, new_user)
                    return redirect('post/home.html')
        return render(request, self.template_name, {'form' : form})
def logout_view(request):
    logout(request)
    form = UserForm(request.POST or None)
    return render(request, 'post/login.html', {'form' : form})
def post_list(request):
    posts =     Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
    return render(request, 'post/post_list.html', {'posts': posts})
def post_detail(request, pk):
    post = get_object_or_404(Post, pk=pk)
    return render(request, 'post/post_detail.html', {'post': post})
def post_new(request):
    if request.method == "POST":
        form = PostForm(request.POST)
        if form.is_valid():
            post = form.save(commit=False)
            post.author = request.user
            post.published_date = timezone.now()
            post.save()
            return redirect('post_detail', pk=post.pk)
    else:
        form = PostForm()
     return render(request, 'post/post_edit.html', {'form': form})
 
     
    