python - 如何将 Django 模型字段选择字符串转换为值

标签 python django

假设我有以下 Django 模型:

class myModel(models.Model):
    C = "myC"
    D = "myD"

    A = models.CharField(max_length=254, null=False, blank=False,)
    B = models.CharField(
        max_length=254,
        null=False,
        blank=False,
        choices=((C, "C"), (D, "D")),
    )

    def set_B(self, choice_val):
        self.B = #WHAT GOES HERE??
        self.save()

现在假设我创建一个 myModel 类型的对象 X。 然后我调用 X.set_B("D")。我希望 myModel 的 set_B() 方法将 B 的值设置为 myModel.D。我怎样才能做到这一点?我必须在 set_B() 中放入哪些代码才能将人类可读值“D”转换为 myModel.D

最佳答案

您可以简单地使用getattr函数。

class myModel(models.Model):

A = models.CharField(max_length=254, null=False, blank=False,)
B = models.CharField(
    max_length=254,
    null=False,
    blank=False,
    choices=((C, "C"), (D, "D")),
)
C = #Something
D = #Something

def set_B(self, choice_val):
    self.B = getattr(self,choice_val)
    self.save()

getattr 函数将返回 choice_val 属性的值。

关于python - 如何将 Django 模型字段选择字符串转换为值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30961005/

相关文章:

python - 如何检测用户是否在 Django REST(分页)的最后一页?

python - 第三个变量的颜色线 - Python

javascript - Django - 在 for 循环中每隔一个项目放置不同的位置

mysql - Django、nginx 和 uWSGI 缓存结果直到 uWSGI/MySQL 重启

jquery - 从 django 应用程序到 jquery 插件的依赖

python - 轨迹总长度

python - 如何进行多个查询?

python - 如何可视化神经网络

Django "You have unapplied migrations"。哪个?

python - 在 Django 中处理联系表,未发送电子邮件