2016-07-28 23 views
0

Es gibt eine folgende Beziehung in meinem django Modell:Anzeige nur Kinder von Objekten durch den Benutzer in Admin erstellt

django User --has many-- Competition --has many-- Category --has many-- Competitor

Im Admin möchte ich nur Objekte anzeigen, die von dem angemeldeten User erstellt wurden. Ich kann es für Competition tun - kein Problem: In admin.py i get_queryset von Modell Admin außer Kraft setzen und es zu einem Modell zuordnen:

class CompetitionAdmin(admin.ModelAdmin): 
    def get_queryset(self, request): 
     qs = super(CompetitionAdmin, self).get_queryset(request) 
     if request.user.is_superuser: 
      return qs 
     return qs.filter(user_id=request.user.id) 

admin.site.register(Competition,CompetitionAdmin) 

Wie kann ich für Category das gleiche tun und damit Competitor?

+0

Warum können Sie nicht das Gleiche tun? –

Antwort

0

Sie Fremdschlüsselbeziehung mit der doppelten Unterstrich-Schreibweise verweisen können:

: competition

Für Category wenn Category hat ein ForeignKey Feld:

Category.objects.filter(competition__user=request.user) 

Für Competitor wenn Competitor ein ForeignKey Feld category hat

Competitor.objects.filter(category__competition__user=request.user)