簡體   English   中英

django 中分頁相關查詢集

[英]paginate related queryset in django

我有兩個名為 Card 和 Comment 的模型,都與外鍵相關

class Card(models.Model):
    image = models.CharField(max_length=100, default="")
    email = models.EmailField(unique=True, max_length=30, null = False, blank=False, default="")
    mobile = models.CharField(unique=True, max_length=12, null = False, blank=False, default="")
    uploaded_time = models.DateTimeField(auto_now_add=True)
    name = models.CharField(unique=True, max_length=30, null = False, blank=False, default="")
    active = models.BooleanField(default=True)

    def __str__(self):
        return self.name

class Comment(models.Model):
    image = models.ForeignKey(Card, on_delete=models.CASCADE, related_name="comments")
    comment = models.CharField(max_length=100, blank=False, null=False)
    valid = models.BooleanField(default=False)

我想使用 select_related 或 prefetch_related 查詢訪問卡片以及有限的(評論大小為 5)評論

我有一個用於評論的加載更多按鈕,所以每當我按下加載更多時,我想要再獲取 5 條評論

有人請回答,thnks :)

要對 Django 中的查詢集進行分頁,可以使用 Paginator class:

這將對查詢集進行分頁,允許您僅訪問指定頁面上的項目。

要對包含相關對象的查詢集進行分頁,您可以使用 select_related 方法預取相關對象。

這是一個例子:

# Assume that your queryset includes related objects, and that you want to prefetch them
my_queryset = Comment.objects.filter(image__id=your_id).values("comment")

# Create the paginator object as described above
paginator = Paginator(my_queryset, 5)

# Get the page number from the query string
page_number = request.GET.get('page')

# Get the page object for the specified page number
page_obj = paginator.get_page(page_number)

# Use the page object to access the items on the specified page
page_items = page_obj.object_list

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM