在django中使用此结构的Queryset:Post - >专辑< - 图像

时间:2018-03-19 16:25:54

标签: django django-models django-queryset

我有一些问题要找到一个查询集来从我博客的帖子中获取图片。

这些是我的模特:

class Album(models.Model):
    name = models.CharField(max_length=50, default='album')
    slug = models.CharField(max_length=100, blank=True)

class Post(models.Model):
    title = models.CharField(max_length=100, blank=False)
    slug = models.CharField(max_length=100, default=' ', blank=True)
    album = models.ForeignKey(Album, default=1, blank=True, null=True)

    def save(self, *args, **kwargs):
        self.slug = self.title.replace(" ", "_").lower()
        if not self.pk:
            album = Album.objects.create(name='album '+self.title)
            self.album = album
        super(Post, self).save(*args, **kwargs)

class Image(models.Model):
    album = models.ForeignKey(Album, default=1)
    header_image = models.BooleanField(default=False)
    image = models.ImageField(upload_to="photos", default='/image.jpg', blank=False)

我为模特决定了这种结构,因为我可以将相册模型重复用于帖子,产品或其他对象,但现在我不知道如何从帖子中访问图像 我如何做查询集? 在此先感谢您的任何帮助

1 个答案:

答案 0 :(得分:0)

假设您保留这些模型的应用音乐 尝试在Django shell中输入以下内容

>>>from music.models import Post,Image
>>>post_object = Post.objects.first() #to get the first object
>>>post_object.images.all() # to get a queryset of all images linked with the object
>>>for image in post_object.images.all():
...  print(image)