【问题标题】:Select all photos from each Album (Django)从每个相册中选择所有照片(Django)
【发布时间】:2010-06-30 16:49:03
【问题描述】:

我需要一些帮助(抱歉我的英语不好)。

我正在尝试从每个相册中获取所有照片。我不知道如何进行查询。 我需要这些数据(并通过属性“顺序”对照片进行排序,这会很棒)。

House1-title

照片1:描述

照片2:描述

照片3:描述

House2-标题

照片1:描述

照片2:描述

照片3:描述

模型(略)长这样,哪个更容易查询?哪个更有效? (我知道,最好的解决方案是使用 memcache)。

选项 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()

谢谢!

【问题讨论】:

    标签: django django-models django-queryset


    【解决方案1】:

    选项 B. 是正确的方法。

    House.objects.all().select_related()
    
    
    {% for house in house_qs %}
         {{house.name}}
    
        {% for photo in house.photo_set.all %}
           {{photo}}
        {% endfor %}
    
    {% endfor %}
    

    【讨论】:

    • 可以用order_by下单吗?这使我的应用程序崩溃 {% for photo in Photographer.photo_set.all.order_by('order') %}
    • 用户:在照片模型中,定义一个元类,您可以在其中定义它的排序字段order
    猜你喜欢
    • 2010-11-11
    • 2011-05-10
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    相关资源
    最近更新 更多