Как сделать функцию обновления в 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
.