how to limit the queryset of an inline model in django admin
17,123
Use the get_queryset
method:
https://docs.djangoproject.com/en/stable/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_queryset
Should look like:
class BAdmin(admin.TabularInline):
...
def get_queryset(self, request):
qs = super(BAdmin, self).get_queryset(request)
return qs.filter(user=request.user)
Author by
krishnan
Updated on June 05, 2022Comments
-
krishnan almost 2 years
I have two models implemented like
class A(models.Model): a_name = models.CharField(max_length=50) class B(models.Model): a = models.ForeignKey(A) b_tag = models.CharField(max_length=50) user=models.ForeignKey(User) # stores username
Now I define an
A
admin and register it withB
as a subclass toTabularInline
. I wonder if it is possible somehow to filter the list ofB
objects before the inline formset is rendered, so not allB
objects related toA
get into the formset, only ones whoseuser
parameter matches the currently logged in user shows up!