3

我正在这样做:

p = MyModel.objects.filter(user__username="me").annotate(friend_count=Count(friends))

当我看:

p[0]._meta.get_all_field_names()

它返回模型上定义的所有内容,但不返回带注释的字段“friend_count”

有没有可以用来查看特定模型实例的所有带注释字段的函数?

4

2 回答 2

5

用这个:

p.query.annotations.keys() 

它将给出所有注释字段的列表。

于 2018-03-23T09:56:22.823 回答
0

注释只是存储为普通实例属性(就像 ORM 字段 FWIW 的值一样)。您可以使用dir(my_model_instance)查看所有属性(类和实例)名称,或my_model_instance.__dict__.keys()仅查看普通实例属性。

于 2012-07-04T18:10:11.603 回答