假设我有以下 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/