I am using forms in my list view. why I am getting this error 'ListBlogPost' object has no attribute 'get_object'
?. Here is my code:
views.py
class ListBlogPost(ListView,FormView):
model = Blog
template_name = 'approval-blog-post.html'
form_class = AdminBlogFrom
def get_success_url(self):
return reverse('approval-blog')
#def get_object(self,slug): #I aslo tried this but didn't work
#blog = get_object_or_404(Blog,slug=slug)
#return blog
def get_context_data(self, **kwargs):
data = super(ListBlogPost, self).get_context_data(**kwargs)
data['blog_admin_form'] = AdminBlogFrom()
return data
def post(self, request, *args, **kwargs):
self.object = self.get_object()
form = self.get_form()
if form.is_valid():
messages.add_message(self.request, messages.INFO, 'Your Comment pending for admin approval')
return self.form_valid(form)
else:
messages.add_message(self.request, messages.INFO, 'Somethings Wrong. Please try again')
return self.form_invalid(form)
def form_valid(self, form):
form.save()
return super(ListBlogPost, self).form_valid(form)
froms.py
class AdminBlogFrom(ModelForm):
class Meta:
model = Blog
fields = ['is_published','author','slug']
models.py
author = models.ForeignKey(User,on_delete=models.CASCADE,max_length=100)
title = models.CharField(max_length=300,unique=True)
body = RichTextUploadingField()
slug = models.SlugField(max_length=255,unique=True)
created_at = models.DateTimeField(auto_now_add= True,blank=True,null=True)
updated_at = models.DateTimeField(auto_now= True,blank=True,null=True)
CHOICES = (
('published', 'published',),
('pending', 'pending',),
('rejected', 'rejected',),
)
is_published = models.CharField(
max_length=10,
choices=CHOICES,default='pending'
)
#approve-post.html
<form method="POST">
{% csrf_token %}
{{form}}
<button class="btn btn-info">Publish</button>
</form>
When I am clicking on publish button I am getting this errror
File "P:\django\farhyn\blog\views.py", line 276, in post
self.object = self.get_object()
AttributeError: 'ListBlogPost' object has no attribute 'get_object'
[12/Jun/2021 00:09:31] "POST /blog-admin/approval-blog-post/ HTTP/1.1" 500 83649
It seems to me the problems occurring for this line of code self.object = self.get_object()
but not understanding what to do?