【发布时间】:2014-09-15 11:11:34
【问题描述】:
我有一张如下表-
name| age |
----|-----|
A | 50 |
B | 60 |
C | 70 |
我的模型类是 -
class Persons(models.Model):
p_id = models.AutoField(primary_key=True)
p_name = models.CharField(max_length=32, null=False)
p_age = models.IntegerField(null=False)
objects = ManagerEx()
class Meta:
db_table = u'persons'
我想用类似的东西来查询表 -
persons = Persons.objects.all()
但是名称应该被“匿名”覆盖,这样对于每个人对象 p_name 的计算结果都是“匿名”
for person in persons:
name = person.p_name # For all objects name should equal to 'anonymous'
我怎样才能做到这一点?
【问题讨论】:
-
当你输出数据时肯定会这样做,不是吗?
-
我可以用 sql 做到这一点。例如 select cast('anonymous' as varchar(32)) as p_name, p_age from people。我正在寻找一种使用 django queryset 的方法
-
但是为什么呢?查询集在您输出之前没有用处。
-
我在一个后端项目中使用 django ORM,并且有一个算法适用于从这里返回的查询集。如果 p_name 字段的值不是“匿名”并且我没有更改数据库中记录的选项,则算法的行为将是未定义的。该算法是通用的,也适用于其他数据。我也修改不了。
标签: python django django-queryset