簡體   English   中英

Django模型的計算屬性

[英]Django model calculated property

我有一個應用程序模型,具有3個狀態。

接受:明確接受
拒絕:明確拒絕
待處理:既未明確接受也未拒絕

對我來說,為模型定義一個acceptedrejected字段對我來說很有意義,因此我可以顯式設置它們。 但是pending屬性取決於其他兩個條件...因此為其設置屬性沒有意義。

我可以為此編寫一個方法,例如job.pending() ,它返回一個布爾值,該布爾值只是( not accepted ) and (not rejected) 但是有什么方法可以不用編寫方法就可以進行job.pending嗎?

只是好奇...

您可以重寫save()方法來執行類似的操作,以便每次更改作業模型時,它都會重新計算未決。 盡管我同意眾人皆知的是, 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.

https://docs.djangoproject.com/en/dev/topics/db/models/#overriding-predefined-model-methods

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM