Thanks, It works. Also, other people are able to access the draft posts 
detail view through URL. I thought of a solution that I will provide only 
the list of drafts and if the user clicks on it will take to the edit page 
of that post. But I am not able to implement this thing.

On Monday, June 24, 2019 at 8:39:26 PM UTC+5:30, Aldian Fazrihady wrote:
>
> I would implement get_queryset method that filter blog post by 
> author=self.request.user
>
> Regards, 
>
> Aldian Fazrihady
>
> On Sun, 23 Jun 2019, 20:55 Gaurav Sahu, <[email protected] <javascript:>> 
> wrote:
>
>> Hy, I am developing a  Django Blog application. In this application, I 
>> have a PostEdit view to edit the post, Delete post view to delete the post. 
>> These operations can only be performed by the user who has created that 
>> post. I used Delete view as a functional view and edit view as CBV. Now 
>> what is happening is that any user is able to delete or edit the others 
>> post through URL. In my delete post view since it is a functional based 
>> view, I have used if condition to prevent another user to prevent deleting 
>> someone else post. But since for post edit, I am using CBV, I am not able 
>> to find a way to prevent a user from editing someone else's post.
>> So how can I prevent doing another user to edit someone else post?
>>
>>
>> class PostUpdateView(LoginRequiredMixin ,UpdateView):
>>     model = Post
>>     template_name = 'blog/post_form.html'
>>     form_class = PostForm
>>
>>     def get_context_data(self, **kwargs):
>>         context = super().get_context_data(**kwargs)
>>         context['title'] = 'Update'
>>         return context
>>
>>     def form_valid(self, form):
>>         form.instance.author = self.request.user
>>         form.save()
>>         return super().form_valid(form)
>>
>>
>> @login_required
>> def post_delete(request, slug):
>>     post = get_object_or_404(Post, slug=slug)
>>     if (request.user == post.author):
>>         post.delete()
>>         return redirect('blog:post_list')
>>     else:
>>         return redirect('blog:post_detail', slug=slug)
>>
>>
>>
>>
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Django users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> Visit this group at https://groups.google.com/group/django-users.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/django-users/9b38d4e0-a30a-43ed-9af6-6c9ac545024f%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/django-users/9b38d4e0-a30a-43ed-9af6-6c9ac545024f%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/efb6c007-9aaa-48aa-af6e-2f18f0dff523%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to