Я пытаюсь добавить ограничения на свой сайт, чтобы только человек, добавивший продукт или публикацию, мог редактировать / удалять этот продукт или публикацию. В настоящее время кнопка редактирования видна всем, поэтому она не идеальна.
У меня была хорошая трещина, но что-то все еще не так, поскольку кнопка редактирования все еще отображается, даже когда я не пишу создатель.
Созданное мной edit_forum_post представление:
@login_required
def edit_forum_post(request, post_id):
""" Create a view that allows us to edit a post """
post = get_object_or_404(Post, pk=pk)
registered_user = request.user.id
creator = post.creator.id
if not logged_user == creator:
messages.error(request, 'You are unable to edit this post')
return redirect('get_forum')
if request.method == "POST":
edit_post = ForumPostForm(request.POST, request.FILES, instance=post)
if edit_post.is_valid():
edit_post.save()
messages.success(request, 'You have successfully updated your post')
return redirect('forum_post_details', post_id)
edit_post = CreatePost(instance=post)
context = {
'form': edit_post,
'post': post
}
return render(request, 'forum_post_form.html', context)
Пункт, который я добавил в Кнопка редактирования сообщения :
{% if registered_user == post.creator %}
<a href="{% url 'edit_forum_post' post.id %}" class="btn btn-outline-warning">Edit Post</a>
{% endif %}
Мы будем благодарны за любые отзывы!