我有一个用一个通用外键定义的模型,如下所示:
class Status(models.Model):
request_type = models.ForeignKey(ContentType)
request_id = models.PositiveIntegerField()
request = GenericForeignKey('request_type', 'request_id')
当我用一个普通的查询集来处理关系时,它工作得很好。在
^{pr2}$这会正常打印所有的名字。在
不过,我使用的是djangoeztables,它依赖于获取以下值
statuses = Status.objects.all().values('request__name')
但是,当我尝试这个时,我得到:
FieldError: Cannot resolve keyword 'request' into field. Choices are: request_id, request_type, request_type_id
在Django有没有办法做到这一点?在
根据the contenttypes framework的文件:
由于^{} 是这个API的一部分,并且在Aggregations and other QuerySet clauses的文档中仅在
filter()
/exclude()
下面列出了两个部分,我想这就是为什么您的方法失败了。在我建议这样做:
当然,列表理解中的dict键可以是任何你想要的。我把它们留作
'request__name'
,因为如果你的方法能正常工作的话,你就会得到这样的结果。在我想出来了。在
必须使用以下名称定义对象:
然后,在要筛选的对象中,必须创建反向泛型关系:
^{pr2}$最后你可以做一些有趣的事情
或者
相关问题 更多 >
编程相关推荐