Django的注释Count with division返回整数而不是float

时间:2016-12-11 22:04:00

标签: django django-orm django-annotate

我有很多对象,其中3个有name ='AAA'

我按“名称”对它们进行分组,并在组中注释num:

docker logs clean <container_name>

我明白了:

my_models = MyModel.objects.order_by('name').values('name').annotate(count=Count('name'))

for i in my_models:
    print(i.count, i.name)

一切都很好,但是当我尝试添加一些公式来注释Count():

3, 'AAA'
1, 'BBB'
...

我明白了:

my_models = MyModel.objects.order_by('name').values('name').annotate(count=Count('name') / 2)

但是期待:

1, 'AAA'
0, 'BBB'
...

修改

Python部门与SQL部门的区别在于Django的ORM, 所以python 3中的2/1返回2.0 - OK,但不是SQL

1 个答案:

答案 0 :(得分:7)

@Alasdair's comment之后的完整答案:

void setFacebookLoginPopUp() {
    LoginManager loginManager = LoginManager.getInstance();

    // Other app specific specialization
    callbackManager = CallbackManager.Factory.create();

    loginManager.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            ...
        }

        @Override
        public void onCancel() {
            ...
        }

        @Override
        public void onError(FacebookException exception) {
           ...
        }
    });
}