2

我正在規範與Django項目關聯的數據庫,並且將字段移動到不同的表中。作爲實現過程的一部分,如果在我實際刪除列之前嘗試在添加新表後嘗試使用舊屬性,我想向我的同事拋出一個棄用警告。在Django模型中棄用字段

class Asset(Model): 
    model = models.CharField(max_length=64, blank=True, null=True) 
    part_number = models.CharField(max_length=32, blank=True, null=True) # this will be a redundant column to be deprecated 
    company = models.ForeignKey('Company', models.CASCADE, blank=True, null=True) # this will be a redundant column to be deprecated 
    # other database fields as attributes and class methods 

我的理解是,我需要增加沿warnings.warn('<field name> is deprecated', DeprecationWarning)在某處類線的東西,但我哪裏會增加嗎?

+0

您可以將字段更改爲屬性並在那裏處理警告,並在可能的情況下返回適當的值。 –

回答

0

我做了類似的事情 - 將該字段轉換爲屬性並處理警告。請注意,這仍然會破壞您在該字段上進行過濾的任何查詢 - 只是有助於從實例訪問該屬性。

class NewAsset(Model): 
    model = models.CharField(max_length=64, blank=True, null=True) 

class Asset(Model): 
    @property 
    def model(self): 
     log.warning('Stop using this') 
     return NewAsset.model 
+0

不幸的是,我現在無法冒險破壞任何現有的功能 – ccs