1

我有这个模型:

class Node(MPTTModel):
    parent              = TreeForeignKey('self', on_delete=models.CASCADE, blank=True, null=True, related_name='children')
    name                = models.TextField(blank=True, null=True)

有这个相关的模型:

class Views(models.Model):
    related_tree = models.ForeignKey(Node, on_delete=models.CASCADE, blank=True, null=True, related_name='related_views')
    views_count = models.PositiveIntegerField(null=True, blank=True, default=0)
    user = models.ForeignKey(CustomUser, on_delete=models.CASCADE, blank=True, null=True)
    view_date = models.DateTimeField(default=timezone.now)

我要做的是在第二个模型的查看日期之前订购第一个模型的查询集,这是我尝试过的视图:

last_viewed_trees = Node.objects.filter(tree_type='root').order_by('-related_views__view_date')

在那个结果是正确的,但我有许多用户的重复 view_date。我也试过这个但没有成功:

        last_viewed_trees = Node.objects.filter(tree_type='root').annotate(time_of_views= Min('related_views__views_count')
        ).order_by('-time_of_views')

        last_viewed_trees = Node.objects.filter(tree_type='root').annotate(time_of_views= Max('related_views__views_count')
        ).order_by('-time_of_views')

没有什么对我有用,我缺少一些东西,但我无法识别它。

4

0 回答 0