首页 > 解决方案 > 我的 django 模型字段如何从默认定义的函数中获取值

问题描述

有这个模型:

class Settings(models.Model):

    INT = "int"
    FLOAT = "float"
    STRING = "string"
    JSON = "json"
    BOOLEAN = "boolean"
    VALUE_TYPES = (
        (INT , "int"),
        (FLOAT , "float"),
        (STRING , "string"),
        (JSON , "json"),
        (BOOLEAN , "boolean"),
    )

    def casted_value(self):
        if self.value_type == Settings.INT:
            return int(self.value)
        elif self.value_type == Settings.FLOAT:
            return float(self.value)
        elif self.value_type == Settings.STRING:
            return str(self.value)
        elif self.value_type == Settings.BOOLEAN:
            return bool(self.value)
        elif self.value_type == Settings.JSON:
            return json.dumps(self.value_type)



    key = models.CharField(max_length=100, null=True, blank=True)
    value = models.CharField(max_length=250, null=True, blank=True)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    value_type = models.CharField(max_length=30, choices=VALUE_TYPES, default=casted_value)

我正在尝试value_type根据函数赋予我的字段值casted_value。这个概念是根据类型返回值。

当我尝试迁移时,我遇到了错误:

类型错误:casted_value() 缺少 1 个必需的位置参数:'self'

如何定义我的casted_value函数以使value_type字段从该函数中获取值的正确方法是什么?

标签: djangodjango-models

解决方案


推荐阅读