如何在 django admin 中限制内联模型的查询集
how to limit the queryset of an inline model in django admin
我实现了两个模型
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
现在我定义了一个 A
管理员并将其注册为 B
作为 TabularInline
的子类。我想知道是否有可能在呈现内联表单集之前以某种方式过滤 B
对象列表,因此并非所有与 A
相关的 B
对象都进入表单集,只有那些 [= =17=] 参数匹配当前登录的用户出现!
使用get_queryset
方法:
https://docs.djangoproject.com/en/stable/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_queryset
应该看起来像:
class BAdmin(admin.TabularInline):
...
def get_queryset(self, request):
qs = super(BAdmin, self).get_queryset(request)
return qs.filter(user=request.user)
我实现了两个模型
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
现在我定义了一个 A
管理员并将其注册为 B
作为 TabularInline
的子类。我想知道是否有可能在呈现内联表单集之前以某种方式过滤 B
对象列表,因此并非所有与 A
相关的 B
对象都进入表单集,只有那些 [= =17=] 参数匹配当前登录的用户出现!
使用get_queryset
方法:
https://docs.djangoproject.com/en/stable/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_queryset
应该看起来像:
class BAdmin(admin.TabularInline):
...
def get_queryset(self, request):
qs = super(BAdmin, self).get_queryset(request)
return qs.filter(user=request.user)