问题描述
- 房间
- RoomImages
- 首页客房
我正在使用此代码获取所有主页房间及其数据,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 (将#修改为@)