小编ldl*_*ork的帖子

在Django中注释多表继承

我有一个基本的LoggedEvent模型和许多子类模型,如下所示:

class LoggedEvent(models.Model):
    user = models.ForeignKey(User, blank=True, null=True)
    timestamp = models.DateTimeField(auto_now_add=True)

class AuthEvent(LoggedEvent):
    good = models.BooleanField()
    username = models.CharField(max_length=12)

class LDAPSearchEvent(LoggedEvent):
    type = models.CharField(max_length=12)
    query = models.CharField(max_length=24)

class PRISearchEvent(LoggedEvent):
    type = models.CharField(max_length=12)
    query = models.CharField(max_length=24)
Run Code Online (Sandbox Code Playgroud)

用户在执行相关操作时会生成这些事件.我正在尝试生成一个使用情况报告,显示每个用户在上个月造成的每种事件类型的数量.我正在与Django的ORM挣扎,而我很接近,我遇到了一个问题.这是查询代码:

def usage(request):
    # Calculate date range
    today = datetime.date.today()
    month_start = datetime.date(year=today.year, month=today.month - 1, day=1)
    month_end = datetime.date(year=today.year, month=today.month, day=1) - datetime.timedelta(days=1)

    # Search for how many LDAP events were generated per user, last month
    baseusage = User.objects.filter(loggedevent__timestamp__gte=month_start, loggedevent__timestamp__lte=month_end)
    ldapusage = baseusage.exclude(loggedevent__ldapsearchevent__id__lt=1).annotate(count=Count('loggedevent__pk'))
    authusage …
Run Code Online (Sandbox Code Playgroud)

django django-models django-orm

5
推荐指数
1
解决办法
716
查看次数

标签 统计

django ×1

django-models ×1

django-orm ×1