【发布时间】:2022-01-20 15:41:40
【问题描述】:
我的 django 模型中有一个足球队课程。我做了 3 种赢、平和输的方法,self.Points_of_the_season 将被相应地修改(+3 表示胜利,+1 表示平局,+0 表示失败)。但是当我编写这些方法时,我必须在每次调用这 3 个方法时更改 self.Match_Played。如何制作一个名为 @play_match 的装饰器,它将为相关字段添加 1?
这是models.py的代码:
class Team(models.Model):
Team_name = models.CharField(max_length=255)
Foundation_year = models.IntegerField()
Points_of_season = models.IntegerField(default=0)
Match_Played = models.IntegerField(default=0)
League = models.ForeignKey(League, on_delete=models.CASCADE)
def __str__(self):
return f"{self.Team_name}-{self.Foundation_year}"
@play_match
def win(self):
self.Points_of_season += 3
@play_match
def draw(self):
self.Points_of_season += 1
@play_match
def lose(self):
pass
【问题讨论】:
标签: python django python-decorators