In your model admin, you could override the method
So you could do something like,
def get_queryset(self, request):
qs = super(EntryAdmin, self).get_queryset(request)
return qs.filter(business__in=request.user.account_set.all().values_list('business_id', flat=True))
The last line,
qs.filter(business__in=request.user.account_set.all().values_list('business_id', flat=True)), filters the initial queryset(which defaults to all entries).
request.user.account_set.all() returns all the
Account objects associated with the user. Yes, the way you design your
Account model will allow multiple objects to be associated to a User. If you want to limit it to one, you should consider using
.values_list('business_id', flat=True) to the queryset is telling Django that you only want specific columns to be returned, in this case just the
values_list returns a list of tuples but if you only need one column from the queryset, you can pass the keyword argument
flat=True which will return a flat list.