私はdjangoサイトで作業しており、以下のようないくつかのインスタンスメソッドを定義したいと考えています.
Class Auth(models.Model):
def wrap_has_perm(self, perm):
def wrap():
if self.is_staff and self.has_perm(perm):
return True
else:
return False
can_add_order = wrap_has_perm('finance.normal')
can_review_order = wrap_has_perm('finance.review')
is_leader = wrap_has_perm('finance.leader')
is_finance = wrap_has_perm('finance.finance')
can_add_order
、、、can_review_order
をdjango管理サイトis_leader
のis_finance
list_display要素として使いたいです。しかし今、これらのインスタンスメソッドは違法です。
これらのメソッドをどのように達成できますか?
部分的に使用する場合:
def staff_has_perm(self, perm):
return self.is_staff and self.has_perm(perm)
can_add_order = partial(staff_has_perm, perm='finance.normal')
can_review_order = partial(staff_has_perm, perm='finance.review')
is_leader = partial(staff_has_perm, perm='finance.leader')
is_finance = partial(staff_has_perm, perm='finance.finance')
それは発生します ( * TypeError: staff_has_perm() は正確に 2 つの引数 (1 つが与えられます) を取ります); に渡す必要があり、どのように渡す必要self
がありますか?