Как сделать функцию обновления в Django

Мой проект - дискуссионный форум, использующий Django, и вот мои функции создания и обновления, но update_post должен обеспечивать функциональность обновления, но каждый раз, когда я пытаюсь обновить сообщение, он добавляет новое сообщение?

        @login_required
    def create_post(request):
        context = {}
        form = PostForm(request.POST or None)
        if request.method == "POST":
            if form.is_valid():
                print("\n\n its valid")
                author = Author.objects.get(user=request.user)
                new_post = form.save(commit=False)
                new_post.user = author
                new_post.save()
                form.save_m2m()
                return redirect("home")
        context.update({
            "form": form,
            "title": "Create New Post"
        })
        return render(request, "create_post.html", context)
    

      @login_required
def update_post(request):
    context = {}
    author = Author.objects.get(user=request.user)
    form = PostForm(request.POST , instance=author)
    if request.method == "POST":
        if form.is_valid():
            print("\n\n its valid")
            new_post = form.save(commit=False)
           # new_post.user = author
            new_post.save()
            form.save_m2m()
            return redirect("home")
    context.update({
        "form": form,
        "title": "UpdatePost",
    })
    return render(request, "update_post.html", context)
form = PostForm(request.POST , instance=author)

instance кажется, что ему следует передать экземпляр Post, а не экземпляр Author. Я предполагаю, что PostForm является довольно стандартным ModelForm с model = Post в Meta.

Вернуться на верх