存储一个带有值的CharFiled,读取时如何获得另一个值?

时间:2019-03-27 10:35:11

标签: django django-models

CharFiled保存了一个值,但是我想在读取它时对存储的值进行一些修改,但是db中的值不变。我应该怎么做 ? 我的代码如下:

class TFile(models.Model):
    lang = models.CharField(max_length=100, choices=LANGUAGE.choices())
    domain = models.ForeignKey(TDomain, null=True, verbose_name="领域", related_name="domain", on_delete=models.SET_NULL)

    type = models.CharField(max_length=100, choices=FILETYPE.choices())
    host = models.CharField(max_length=100, null=True)
    path = PathFiled(max_length=1000)

例如:我将path的值设置为“ / home / work / workspace”,但我想将其读出为“ / workspace”,该怎么办,或者应该在自定义的归档的FieldField中覆盖什么功能。

1 个答案:

答案 0 :(得分:1)

就像Bear在评论中提到的那样,假设我有一个名为Menu的模型,该模型具有两个字段和属性,我可以在类中定义它们来表示db值的修改版本。

class Menu(models.Model):

    identifier = models.CharField(verbose_name=_("identifier"), max_length=100)
    site = models.ForeignKey(Site, on_delete=models.PROTECT)


    def __str__(self):
        return self.identifier

    @property
    def root_id(self)
        # Do whatever modification you would like here... for example
        # below I prefix "root-" to an identifier
        return "root-" + self.identifier