对属性和 getter 使用相同的名称
Using same name for attribute and getter
我关注class/model:
class Recipe(db.Model):
...
user_id = db.Column(db.ForeignKey(("users.id")), nullable=False, index=True)
author = db.relationship("User", uselist=False, back_populates="diets")
...
# Permissions
def can_view(self, user = None) -> bool:
if user is None:
user = current_user
return self.author == user
我可以使用recipe.can_view()
或recipe.can_view(some_user)
,但我希望能够调用recipe.can_view
而不是recipe.can_view()
,我不知道什么是好的解决方案。
谢谢
看来我做不到(至少不能弄得一团糟)。
所以,我采用了@zvone 在评论中提出的解决方案:
I would go with can_view(user)
and can_current_user_view
所以,我的代码是:
def can_view(self, user) -> bool:
return self.is_author(user) or user.is_admin or self.is_public
@property
def can_current_user_view(self) -> bool:
return self.can_view(user=current_user)
我关注class/model:
class Recipe(db.Model):
...
user_id = db.Column(db.ForeignKey(("users.id")), nullable=False, index=True)
author = db.relationship("User", uselist=False, back_populates="diets")
...
# Permissions
def can_view(self, user = None) -> bool:
if user is None:
user = current_user
return self.author == user
我可以使用recipe.can_view()
或recipe.can_view(some_user)
,但我希望能够调用recipe.can_view
而不是recipe.can_view()
,我不知道什么是好的解决方案。
谢谢
看来我做不到(至少不能弄得一团糟)。
所以,我采用了@zvone 在评论中提出的解决方案:
I would go with
can_view(user)
andcan_current_user_view
所以,我的代码是:
def can_view(self, user) -> bool:
return self.is_author(user) or user.is_admin or self.is_public
@property
def can_current_user_view(self) -> bool:
return self.can_view(user=current_user)