2つのモデルを実装しました
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
ことはできないでしょうか。B
A
user
ベストアンサー1
次の方法を使用します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)