1
次のように設定し、私は現在、すべてがベースのインラインクラスから継承するインラインの束を持っている:私は今、ユーザーによっては、インラインはそうのように変化するように私の管理者を変更したいget_inline_instancesを使用すると、追加権限が上書きされますか?
class BaseInlineAdmin(admin.TabularInline):
extra = 0
def has_delete_permission(self, request, obj=None):
return False
def has_add_permission(self, request):
return False
:
class PartyAdmin(admin.ModelAdmin):
inline1 = [Inline1, Inline2]
inline2 = [Inline1, Inline2, Inline3]
def get_inline_instances(self, request, obj=None):
if request.user.is_staff:
return [inline(self.model, self.admin_site) for inline in self.inline1]
else:
return [inline(self.model, self.admin_site) for inline in self.inline2]
ただし、これを行うと、has_add_permission
は機能しなくなります。 get_inline_instances
を使用しない場合、ユーザーは別のアイテムを追加することができず、この機能を一貫して維持したいと考えています。この方法を使用するときにこれが引き継がれない理由がありますか?
記録のために、has_delete_permission
は偽のままであり、状況をさらに奇妙にする。
いいですが、なぜhas_delete_permissionが機能していたのでしょうか? – Written