1

对于某个项目,我很难决定从单独的表格中提取图片的最佳方法是什么。

在 django 中,我有两个表:

class item(models.Model):
    title..
    descr..

class item_pic(models.Model):
    item=models.ForeignKey(item)
    pic=models.ImageField...

我在一个 div 中显示 item.title 和 item.descr,在同一个 div 中我想拉图片。

到目前为止,我已经尝试创建一个模板过滤器,如 item|getPics,它返回该项目的图片列表。

{% for pic in item|getPics %} <img src="/uploads/{{pic.pic}}"> {%endfor%}

最后我摆脱了这个,因为它触发了太多的 sql 查询

现在我通过ajax完成了图片的拉取,唯一的缺点是图片需要一些时间才能出现。而且我假设是相同数量的 sql 查询(只有 django 调试工具栏看不到它们,因为它们是在后台启动的)。

你会如何处理这个问题?感谢您的任何提示!

4

1 回答 1

0

您应该使用select_related()( docs ) 将图像对象与项目一起获取。

它看起来像这样:

item = item.objects.select_related().get(...)

这意味着当您检索item_pics.

最后一点,最好将类名大写,因为这是 Python/Django 中的约定。

于 2012-06-15T09:11:23.157 回答