【发布时间】:2016-01-09 15:50:50
【问题描述】:
我有一个 Postgres 数据库视图,它结合了其他表中的一些数据,并且我有一个 Django 模型来反映这个视图(针对这个问题进行了简化):
class MyModel(models.Model):
othermodel = models.ForeignKey(MyOtherModel, related_name='cached_points')
num_points = models.IntegerField(default=0)
class Meta(object):
managed = False
注意 managed = False 语句以确保 Django 不会尝试创建或更改表。
使用这个模型一切正常,除了迭代它。例如,当我这样做时:
for item in MyModel.objects.all():
....
我得到以下异常:
django.db.utils.ProgrammingError: 列 app_mymodel.id 不存在 第 1 行:选择 "app_mymodel"."id", "app_mymodel...
我理解错误,因为这个(虚拟)表中确实没有列“id”,但迭代器使用它来迭代结果。
如何在没有主键列的情况下迭代此 QuerySet?
谢谢, 埃里克
【问题讨论】:
标签: django postgresql