2

対応するフィールドなしで、(下位互換性のために) django でプロパティを設定することは可能ですか? カスタム ユーザー モデルを使用した簡単なテスト ケースを次に示します。

class CustomUser(AbstractBaseUser):
  email = models.EmailField(max_length=254, unique=True, db_index=True)
  USERNAME_FIELD = 'email'
  ...
  permissions = models.IntegerField(default=0)

  @property
  def is_staff(self):
    return self.permissions >= 2
  @is_staff.setter
  def is_staff(self, value):
    if value and not self.is_staff:
      self.permissions = 2
    if not value and self.is_staff:
      self.permissions = 1

デフォルトの管理インターフェイスを使用してこのユーザーを読み込もうとすると、次のエラーが表示されます。'CustomUserAdmin.list_filter[0]' refers to 'is_staff' which does not refer to a Field.

is_staffモデルが別のフィールドの関数として提供されるようにこれを設定する方法はありますか?

4

1 に答える 1