1

我在我的项目中使用 Django 的评论框架来处理电影的评论:

我的 my_comments_app/models.py 看起来像这样:

from django.db import models
from django.contrib.comments.models import Comment

class UserExperience(Comment):
    experience = models.CharField('User Experience', max_length=20)

    # paginate_by = 4 | This does not work !!

    def __unicode__(self):
        return self.user.username

我的 my_comment_app/forms.py 看起来像:

from django import forms
from .models import UserExperience
from django.contrib.comments.forms import CommentForm

from movies.models import Movie
from django.contrib.comments.moderation import CommentModerator, moderator


class UserExperienceForm(CommentForm):
    experience = forms.CharField(max_length=20)

    def get_comment_model(self):
        return UserExperience

    def get_comment_create_data(self):
        data = super(UserExperienceForm, self).get_comment_create_data()
        data['experience'] = self.cleaned_data['experience']
        return data

class MovieCommentModerator(CommentModerator):
    email_notification = False
    auto_close_field = "start_date"
    close_after = 31

moderator.register(Movie, MovieCommentModerator)

我应该在何时何地添加 paginate_by = 4 以获取我的评论系统分页请求?

我问这个是因为我没有使用任何 views.py 来生成我的评论(如 django 文档中所述)

如何为评论添加分页?

我尝试了以下方法:

  • 使用 views.py 进行分页。通过创建一个视图并使用它的
  • 看到我在我的 UserExperience 类中以某种方式使用基于类的视图(我不确定,我可能完全错了..)我也尝试过这个答案。这是关于基于类的视图的分页。

他们都没有工作。

帮助我对我的评论进行分页。

4

1 回答 1

2

在 views.py 文件中

def CommentView(request):
    allComments = UserExperience.objects.all()
    paginator = Paginator(comments, 10)
    comment = paginator.page(1)

“comment”的值将是 [0...9] 评论。

于 2013-05-23T13:30:20.617 回答