【问题标题】:Django ManyToMany relationship to queryset to pagination?Django ManyToMany关系到查询集到分页?
【发布时间】:2013-06-08 16:03:03
【问题描述】:

以下是相关代码:

models.py

class Blog(models.Model):
    ...
    images = models.ManyToManyField('myapp.Image')

class Image(models.Model):
    ...
    title = models.CharField(max_length=60, blank=True, null=True)
    image = models.FileField(upload_to=content_file_name)
    body = models.TextField(blank=True)
    citation = models.URLField(blank=True)

views.py

def view_post(request, slug):
    ...
    dablog = Blog.objects.get(slug=slug)
    image_list = dablog.images.all()
    paginator = Paginator(image_list, 1)
    ...

在管理员中,我创建了一个 Blog 对象和两个与该博客相关的 Image 对象。我上面发布的代码只是将第一个 Image 对象发送到分页器,我不知道为什么。我知道我的分页器代码和模板代码的其余部分可以工作,因为如果我将其更改为

image_list = Image.objects.all()

我可以对数据库中的两个图像进行分页。请帮助这让我发疯

【问题讨论】:

  • 嗨!你能把你所有的代码给我看吗,我对Paginator有点陌生

标签: django django-models django-queryset django-orm django-pagination


【解决方案1】:

您将分页器定义为只显示一张图片

def view_post(request, slug):
    ...
    dablog = Blog.objects.get(slug=slug)
    image_list = dablog.images.all()
    paginator = Paginator(image_list, 2)
    ...

这会显示两张图片。

【讨论】:

  • 不,我将分页器定义为每页只显示一个图像。问题是应该有的时候没有“下一页”
  • 如果你打电话给len(image_list),你会得到什么价值?
  • 兄弟,你走错了方向。如果您不明白,请重新阅读。特别是说 image_list = dablog.images.all() 的部分只给了我一张图片,而 image_list = Image.objects.all() 告诉我我可以分页但没有给我我需要的图片
  • 我的回答可能不对,但由于我看不到您的图片,我只是想确保这两个图片都与您的博客对象相关联。因为如果你打电话给image_list = Image.objects.all() 你会得到它们,所以我猜你的一张图片实际上并没有链接到你的博客。
  • 谢谢,这正是我的想法,但我不知道我的模型有什么问题。
猜你喜欢
  • 2015-06-23
  • 2013-08-26
  • 1970-01-01
  • 2016-10-26
  • 2022-12-18
  • 2021-05-02
  • 1970-01-01
  • 2020-05-14
  • 2013-01-27
相关资源
最近更新 更多