为一对多关系形成 Django 查询集
Forming Django queryset for one-to-many relation
我有一个定义照片的 Django 模型:
class Pic(models.Model):
image = models.ImageField(upload_to=upload_pic_to_location, storage=OverwriteStorage())
owner = models.ForeignKey(User)
upload_time = models.DateTimeField(db_index=True, auto_now_add=True)
另外定义一条消息,上面的照片可以发送为:
class PicMessage(models.Model):
which_pic = models.ForeignKey(Pic)
sending_time = models.DateTimeField(auto_now_add=True)
即同一张图片可以作为不同的消息多次发送。查找给定 user
发送的 最近 PicMessage
的最有效方法是什么?
我正在尝试这个:PicMessage.objects.filter(which_pic__in=Pic.objects.filter(owner=self.request.user)).latest('sending_time')
PicMessage.objects.filter(which_pic__owner=user).order_by('-sending_time').first()
我有一个定义照片的 Django 模型:
class Pic(models.Model):
image = models.ImageField(upload_to=upload_pic_to_location, storage=OverwriteStorage())
owner = models.ForeignKey(User)
upload_time = models.DateTimeField(db_index=True, auto_now_add=True)
另外定义一条消息,上面的照片可以发送为:
class PicMessage(models.Model):
which_pic = models.ForeignKey(Pic)
sending_time = models.DateTimeField(auto_now_add=True)
即同一张图片可以作为不同的消息多次发送。查找给定 user
发送的 最近 PicMessage
的最有效方法是什么?
我正在尝试这个:PicMessage.objects.filter(which_pic__in=Pic.objects.filter(owner=self.request.user)).latest('sending_time')
PicMessage.objects.filter(which_pic__owner=user).order_by('-sending_time').first()