0
class Photo(models.Model):
    ...    
    viewsT = models.ManyToManyField('PhotoViewT', symmetrical=False)
    ...

class PhotoViewT(models.Model):
    user = models.ForeignKey(User)
    creationdate = models.DateTimeField()

我将照片的信息存储在“Photo”表中,并将有关视图的信息存储在“PhotoViewT”表中(这里是观看照片的“用户”和观看照片时的“创作​​日期”)。在“照片”上,我有 m2m 视图字段,我在其中添加有关所有视图的信息。

我的任务是获取照片,这些照片尚未被当前定义的用户观看。我不知道如何制作这个查询。

就像是

Photo.objects.filter(viewsT__user__doesnt_contain=targetUser)

上面的表达式几乎不起作用。有什么解决办法吗?先感谢您!

4

3 回答 3

1

参考文档。尝试

Photo.objects.exclude(viewsT__user=targetUser)
于 2013-03-09T14:47:24.150 回答
0

Photo.photoviewtset.all()PhotoViewT将获取与该关联的所有实例Photo

Photo.photoviewtset.filter(user=<your_current_user)将获取与您过滤的所有PhotoViewT实例相关联的实例。Photocurrent_user

注意:您不需要Photo模型中的 ManyToManyField

于 2013-03-09T14:38:46.103 回答
0
 Photo.objects.exclude(viewsT__in=PhotoViewT.objects.filter(user=request.user))

 OR

 Photo.objects.filter(~Q(viewsT__in=PhotoViewT.objects.filter(user=request.user)))
于 2013-03-09T14:41:25.547 回答