Python Django模型计算属性
我有一个工作申请模型,有3个州 已接受:明确接受Python Django模型计算属性,python,django,model,Python,Django,Model,我有一个工作申请模型,有3个州 已接受:明确接受 拒绝:明确拒绝 未决:既不明确接受也不拒绝 对于我来说,为我的模型定义一个接受的和一个拒绝的字段是有意义的,这样我就可以显式地设置它们。但是pending属性是基于其他两个属性设置的。。。所以为它设置属性没有意义 我可以为它编写一个方法,比如job.pending(),它返回一个布尔值,它只是(不接受)和(不拒绝)。但是,有没有什么方法可以不编写方法而直接执行作业.pending 只是好奇…您可以覆盖save()方法来执行类似的操作,这样每次更改
拒绝:明确拒绝
未决:既不明确接受也不拒绝 对于我来说,为我的模型定义一个
接受的
和一个拒绝的
字段是有意义的,这样我就可以显式地设置它们。但是pending
属性是基于其他两个属性设置的。。。所以为它设置属性没有意义
我可以为它编写一个方法,比如job.pending()
,它返回一个布尔值,它只是(不接受)和(不拒绝)
。但是,有没有什么方法可以不编写方法而直接执行作业.pending
只是好奇…您可以覆盖
save()
方法来执行类似的操作,这样每次更改作业模型时,它都会重新计算挂起的。尽管我同意limelights的观点,pending()
方法也不错
class Job(models.Model):
accepted = ...
reject = ...
pending = ... (Boolean Fields)
def save(self, *args, **kwargs):
self.pending = (not self.accepted) and (not self.rejected)
super(Job, self).save(*args, **kwargs) # Call the "real" save() method.
你可以定义一个为什么你不愿意拥有一个
pending()
方法?不是“不愿意”,只是好奇而已。我同意pending()
将是最优雅的做法,因为这是最少的工作量,不会破坏任何默认行为。