从每个相册中选择所有照片(Django)

时间:2010-06-30 16:49:03

标签: django django-models django-queryset

我需要一些帮助(抱歉我的英语很差)。

我正试图从每张专辑中获取所有照片。我不知道如何进行查询。 我需要这些数据(并通过属性订购照片“订单”它会很棒)。

House1-标题

photo1:descritpion

photo2:descritpion

photo3:descritpion

House2-标题

photo1:descritpion

photo2:descritpion

photo3:descritpion

模型(缩写)看起来像这样,更容易进行查询?哪个更有效率? (我知道,最好的解决方案是使用内存缓存)。

选项A:

class House(ImageModel):
      title = models.CharField(max_length=25)
      photos = models.ManyToManyField('Photo')


class Photo(ImageModel):
    photo = models.ImageField(upload_to='photos/originals')
    description = models.CharField(max_length=100)
    order = models.IntegerField()

选项B:

class House(ImageModel):
      title = models.CharField(max_length=25)

class Photo(ImageModel):
    house = models.ForeignKey(House)
    photo = models.ImageField(upload_to='photos/originals')
    description = models.CharField(max_length=100)
    order = models.IntegerField()

谢谢!

1 个答案:

答案 0 :(得分:4)

选项B.是正确的方法。

House.objects.all().select_related()


{% for house in house_qs %}
     {{house.name}}

    {% for photo in house.photo_set.all %}
       {{photo}}
    {% endfor %}

{% endfor %}