繁体   English   中英

Django foo_display的值()

[英]Django foo_display with values()

可以说我有一个如下所示的django模型

 Class Student(models.Model):
     name=models.CharField(max_length=100);
     status=models.IntegerField()

status字段只有值1,2。 有没有什么方法可以用每个我在values()方法中使用它们的相应显示值(通过,失败)来替换1,2,而不会在查询集上进一步迭代。 例如:

这样的事情

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'

是的,您可以在模型中执行以下操作:

Class Student(models.Model):
    X_CHOICES = (
            (u'1', u'Pass'),
            (u'2', u'Fail'),
        )
    name=models.CharField(max_length=100);
    status = models.IntegerField(default=1,choices=X_CHOICES)

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM