django - Displaying only children of objects created by the user in Admin -


there following relation in django models:

django user --has many-- competition --has many-- category --has many-- competitor

in admin want show objects created logged in user. can competition - no problem: in admin.py override get_queryset of model admin , assign model:

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) 

how can same thing category , consequently competitor?

you can reference foreign key relation double underscore notation:

for category if category has foreignkey field competition:

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

for competitor if competitor has foreignkey field category:

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

Comments

Popular posts from this blog

magento2 - Magento 2 admin grid add filter to collection -

Android volley - avoid multiple requests of the same kind to the server? -

Combining PHP Registration and Login into one class with multiple functions in one PHP file -