class Photo(models.Model):
...
viewsT = models.ManyToManyField('PhotoViewT', symmetrical=False)
...
class PhotoViewT(models.Model):
user = models.ForeignKey(User)
creationdate = models.DateTimeField()
我将照片信息存储在"Photo"表中,将视图信息存储在"PhotoViewT"表中(这里是观看照片的"user"和观看照片时的"creationdate")。在"photo"上,我有m2m字段到视图,在那里我添加有关所有视图的信息。
我的任务是获取尚未被当前定义的用户观看的照片。我不知道如何编写这个查询。
之类的Photo.objects.filter(viewsT__user__doesnt_contain=targetUser)
上面的表达式几乎不起作用。有解决方案吗?提前感谢!
引用文档。试着
Photo.objects.exclude(viewsT__user=targetUser)
Photo.photoviewtset.all()
将获取与该Photo
相关的所有PhotoViewT
实例。
Photo.photoviewtset.filter(user=<your_current_user)
将获取与您的current_user
过滤的Photo
相关的所有PhotoViewT
实例。
注意:对于这个
Photo
模型中的ManyToManyField Photo.objects.exclude(viewsT__in=PhotoViewT.objects.filter(user=request.user))
OR
Photo.objects.filter(~Q(viewsT__in=PhotoViewT.objects.filter(user=request.user)))