Django ORM混乱

问题描述

我正在运行一个函数来从数据库获取数据, 有三种型号

  1. 房间
  2. RoomImages
  3. 首页客房

我正在使用此代码获取所有主页房间及其数​​据,homeroomrooms模型中总共有15条记录,并且根据django调试工具栏,它命中数据库17次,我正在使用 queryset缓存的图像对象在循环中为何会命中数据库,而不是使用缓存的数据。

homepageRooms = HomepageHotels.objects.all().select_related('room')
roomIds       = [room.room_id for room in homepageRooms]
images        = RoomPhotos.objects.filter(room_id__in = roomIds)
result        = {}

for room in homepageRooms:
    if room.group not in result.keys():
        result[room.group] = []
    temp = {}
    temp['room']   = room.room 
    temp['image']  = images.get(seq=1,id=10) 
    result[room.group].append(temp)  

型号:

class RoomPhotos(models.Model):
    photo = ResizedImageField(size=[800,600],quality=75,upload_to='RoomImages',default = 'hotels/room_images/noImage.png')
    room  = models.ForeignKey(Rooms,on_delete=models.CASCADE)
    seq   = models.IntegerField()

    def __str__(self):
        return '{} : {}'.format(self.seq,self.room.name)
class HomepageHotels(models.Model):
    room      = models.ForeignKey(Rooms,on_delete=models.CASCADE)
    group     = models.IntegerField(choices=GroupType.CHOICES)
    createdOn = models.DateField(auto_Now_add=True)
    updatedOn = models.DateField(auto_Now=True)  

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)