【问题标题】:django model aggregate fliter by different timedjango模型聚合过滤器按不同时间
【发布时间】:2016-07-26 10:47:02
【问题描述】:

型号如下:

class UserInfo(models.Model):

    login_id=models.CharField(db_column='login_id',max_length=50,unique=True)
    passport_name=models.CharField(db_column='passport_name',max_length=50)
    identity_id=models.CharField(db_column='identity_id',max_length=50,null=True)
    company=models.CharField(db_column='company',max_length=50,null=True)

    ctime = models.DateTimeField(db_column='ctime', blank=True, null=True)
    utime = models.DateTimeField(db_column='utime', blank=True, null=True)
    class Meta:
        managed = True
        db_table = "user_info"


class UserViewpoint(models.Model):
    title=models.CharField(db_column='title',max_length=100)
    userid=models.ForeignKey(UserInfo,db_column='userid',to_field='login_id',related_name='rel_tg_viewpoint')
    ctime = models.DateTimeField(db_column='ctime', blank=True, null=True)
    utime = models.DateTimeField(db_column='utime', blank=True, null=True)
    class Meta:
        managed = True
        db_table = "user_viewpoint"



class UserRelationHistory(models.Model):
    """docstring for TgRelationHistory"""

    adviser_id=models.ForeignKey(UserInfo,to_field='login_id',db_column='adviser_id',related_name='rel_tg_relation_history')
    common_id=models.CharField(db_column='common_id',max_length=100)
    ctime = models.DateTimeField(db_column='ctime', blank=True, null=True)
    utime = models.DateTimeField(db_column='utime', blank=True, null=True)
    class Meta:
        managed = True
        db_table = "user_relation_history"

我想得到这样的结果: user_id,count_viewpoint,count_relation_new,count_relation_utilnow

count_realtion_new:new realtions when user_relation.ctime in (start,end)

count_relation_utilnow:user_relation.ctime 的总数

【问题讨论】:

    标签: django filter model aggregate


    【解决方案1】:

    在以下链接中查看此文档: https://docs.djangoproject.com/en/1.9/topics/db/

    您可以使用 Django ORM 执行您可以使用关系数据库执行的所有操作。

    【讨论】:

    • 我已经阅读了文档,但找不到像这样实现的方法,从 user_info ui 中选择 ui.login_id ,count(distinct r_current.common_id) as count_realtion_new ,count(distinct r_current.common_id) as count_relation_utilnow left join (select * from user_relation_history where ctime = thatday) r_current on ui.login_id = r_current.adviser_id left join (select * from user_relation_history where ctime
    • 这里的外键中的 TgInfo 是什么。我看不到模型。请检查此描述:docs.djangoproject.com/en/1.9/ref/models/fields/…
    • 哦,对不起! TgInfo错了,正确的是UserInfo,我已经修复了
    猜你喜欢
    • 1970-01-01
    • 2017-03-09
    • 2021-02-06
    • 2021-02-05
    • 2015-03-25
    • 1970-01-01
    • 2020-09-11
    • 2018-06-16
    • 2018-09-29
    相关资源
    最近更新 更多