假设我有一个如下所示的 django 模型
Class Student(models.Model):
name=models.CharField(max_length=100);
status=models.IntegerField()
状态字段将只有值 1,2。
有什么方法可以用它们相应的显示值替换 1,2
每次我在 values() 方法中使用它们时说 (pass,fail) 而不进一步迭代查询集。
例如:
像这样的东西
Student.objects.values(staus_display_value)
这样它就会返回一个带有显示值而不是 db 值的值查询集
[{"name":"jane","status":"pass"},
{"name":"john","status":"fail"}]
我知道 Model.get_FOO_display() 可用于获取单个对象的显示值。
最佳答案
试试这个
class Student(models.Model):
X_CHOICES = (
(1, 'Pass'),
(2, 'Fail'),
)
name=models.CharField(max_length=100);
status = models.IntegerField(default=1,choices=X_CHOICES)
>>>Student.objects.create(name="myname")
>>>s = Student.objects.get(name="myname")
>>>s.get_status_display()
'Pass'
关于python - Django foo_display 与 values(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31333128/