Reputation: 341
I want to use the generic django ListView to display all the posts of the logged user through this url:
#/users/myposts/
url(r'^myposts/', views.MyPostsView.as_view(), name='myposts'),
My Post model is as following:
class Post(models.Model):
person = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
domain = models.ForeignKey(Domain, on_delete=models.CASCADE)
speciality = models.ForeignKey(Speciality, on_delete=models.CASCADE)
level = models.ManyToManyField(Level)
date_post = models.DateTimeField()
title = models.CharField(max_length=200)
description = models.CharField(max_length=1000)
is_deleted = models.BooleanField(default=False)
date_delete = models.DateTimeField(null=True)
and my generic ListView is:
class MyPostsView(generic.ListView):
template_name = 'posts_list.html'
userId = None
def get_queryset(self):
return Post.objects.get(person=self.request.user.id)
doing this i get the following error message
get() returned more than one Post -- it returned 2
but when I return Post.objects.all()
it returns all the posts and displays them
Upvotes: 0
Views: 341