django的注释字段存储在模型实例中的哪个位置?

时间:2012-07-04 17:14:19

标签: django django-models django-aggregation

我这样做:

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

当我看到:

p[0]._meta.get_all_field_names()

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

是否有可用于查看特定模型实例的所有带注释字段的函数?

2 个答案:

答案 0 :(得分:1)

使用此:

p.query.annotations.keys() 

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

答案 1 :(得分:0)

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