Как добавить нумерацию страниц в django.contrib.comments?

Я использую Django Comments Framework в своем проекте для обработки комментариев к фильму:

Мой 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 (в чем я не уверен, я могу быть совершенно неправ..), я пробовал этот ответ тоже. Что касается разбивки на страницы для представлений на основе классов.

ни один из них не работал.

Помогите мне пролистнуть мои комментарии.


person madil    schedule 23.05.2013    source источник


Ответы (1)


В файле views.py

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

Значением «comment» будет [0...9] comment.

person iraycd    schedule 23.05.2013
comment
Я пробовал, не работает. потому что django.contrib.comments не использует view.py для создания комментариев. У него есть только models.py, если мы хотим добавить какое-либо новое поле и форму. - person madil; 24.05.2013
comment
Paginator используется для преобразования модели в страницы. Это не будет реализовано. paginate_by = 4 следует использовать в views.py см. эту ссылку - person iraycd; 24.05.2013
comment
я видел это. эта ссылка в вопросе выше. - person madil; 25.05.2013
comment
Пожалуйста, добавьте views.py, если можете, и я постараюсь изменить его. - person iraycd; 25.05.2013
comment
Вы не можете просто использовать фильтр для работы с нумерацией страниц в шаблонах - person Vishnu667; 30.06.2013
comment
@ Vishnu667 views.py возьмите весь код шаблона с помощью render_to_response и отрендерите его. Итак, вместо того, чтобы усложнять рендеринг, мы пишем всю логику в views.py, а шаблон (может) иметь только несколько логических или циклических операторов. Некоторое время запись в views.py также полезна для возврата json. Лучше всего использовать views.py - person iraycd; 15.07.2013