2017-10-13 2 views
3

J'utilise des vues basées sur les classes génériques pour mon projet comme:Django: Comment écrire mixin pour queryset pour connecté les données de l'utilisateur

  1. ListView (queryset retourner tous les objets)
  2. DetailView (queryset pour unique objet)
  3. CreateView (données foreignkey dans des boîtes de sélection)
  4. UpdateView (données foreignkey dans des boîtes de sélection)

Comment pour écrire un Mixin générique pour CBV afin que le jeu de requête renvoie uniquement les données appartenant à l'utilisateur connecté.

Répondre

1

Ajoutez juste méthode get_queryset et loginrequiredmixed comme:

from django.contrib.auth.mixins import LoginRequiredMixin 

class ArticleListView(ListView, LoginRequiredMixin): 

    model = Article 

    def get_queryset(self): 
     return Article.objects.filter(publisher=self.request.user) #Just and example, fit it to your problem 
+0

Je l'ai utilisé cette option. Je pense que je suis incapable de présenter mon problème correctement. Je voulais créer un mixin qui hérite de LoginRequiredMixin et qui a aussi la fonctionnalité de retourner le jeu de requête avec les données appartenant à l'utilisateur. Si c'est possible de le faire ou nous devons remplacer get_gueryset() à chaque fois? –