2017-03-05 1 views
0

Je veux utiliser le ListView django générique pour afficher tous les messages de l'utilisateur connecté à travers cette url:(Django) filtre affiché des objets en utilisant le ListView générique

#/users/myposts/ 
url(r'^myposts/', views.MyPostsView.as_view(), name='myposts'), 

modèle Post Mon est comme suit:

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) 

et mon ListView générique est:

class MyPostsView(generic.ListView): 
    template_name = 'posts_list.html' 
    userId = None 

    def get_queryset(self): 
     return Post.objects.get(person=self.request.user.id) 

faire ce que je reçois le message d'erreur suivant

get() returned more than one Post -- it returned 2 

mais quand je reviens Post.objects.all() il retourne tous les postes et les affiche

Répondre

1

Utilisation objects.filter au lieu de objects.get.

+0

oui, ça marche! – A2maridz