Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 7, 2013 18:26:56

dnstuff
Зарегистрирован: 2012-11-05
Сообщения: 113
Репутация: +  1  -
Профиль   Отправить e-mail  

Пагинация

Здравствуйте!
Использую Django 1.5, попробовал несколько приложений для пагинации, ни одно не заработало. Видимо, слишком старые, не обновлялись 3-4 года на гите.
Сейчас пробую django-pure-pagination (вроде посвежее)
models:

class BlogMain(models.Model):
    title = models.CharField(max_length=100, unique=True)
    slug = models.SlugField(max_length=100, unique=True)
    description=models.TextField(max_length=300)
    body = models.TextField()
    timestamp=models.DateTimeField(db_index=True)
   class Meta:
        ordering=('-timestamp',)
view:
def home(request):
	try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1
	posts=BlogMain.objects.all()
	p = Paginator(posts, request=request)
	pagposts=p.page(page)
	return render_to_response('home.html',{'posts': pagposts}, context_instance=RequestContext(request))

Ошибка
TypeError
Exception Value:
__init__() takes at least 3 arguments (3 given)

в строке p = Paginator(posts, request=request)

Помогите, пожалуйста, либо с этим разобраться, либо посоветуйте актуальную батарейку для пагинации.
Спасибо!

Офлайн

#2 Апрель 7, 2013 22:37:28

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2763
Репутация: +  185  -
Профиль   Отправить e-mail  

Пагинация

https://pypi.python.org/pypi/django-pagination



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#3 Апрель 8, 2013 01:53:38

qoqenator
От:
Зарегистрирован: 2007-08-20
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Пагинация

p = Paginator(posts, per_page, request=request)



Офлайн

#4 Апрель 8, 2013 05:50:20

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Пагинация

В CBV паджинация есть из коробки

from django.views.generic.list import ListView
class MyListView(ListView): 
    template_name = 'book_list.html' 
    paginate_by = 10 
    def get_queryset(self):
        self.publisher = get_object_or_404(Publisher, name=self.args[0])
        return Book.objects.filter(publisher=self.publisher)



Офлайн

#5 Апрель 8, 2013 09:17:05

dnstuff
Зарегистрирован: 2012-11-05
Сообщения: 113
Репутация: +  1  -
Профиль   Отправить e-mail  

Пагинация

Всем спасибо. Остановился на https://github.com/frankban/django-endless-pagination.git

Офлайн

#6 Апрель 8, 2013 15:51:41

buddha
От:
Зарегистрирован: 2012-03-02
Сообщения: 422
Репутация: +  15  -
Профиль   Отправить e-mail  

Пагинация

А можно поинтересоваться, чем родная пагинация не устроила?
https://docs.djangoproject.com/en/1.5/topics/pagination/

Офлайн

#7 Апрель 8, 2013 16:23:40

dnstuff
Зарегистрирован: 2012-11-05
Сообщения: 113
Репутация: +  1  -
Профиль   Отправить e-mail  

Пагинация

buddha
А можно поинтересоваться, чем родная пагинация не устроила?https://docs.djangoproject.com/en/1.5/topics/pagination/
Может, она и хороша, но горький опыт научил меня, что подавляющее большинство коробочных решений джанго - откровенный хлам. Неудивительно, что в документации появляются фразы типа: Django’s comment framework has been deprecated and is no longer supported. Most users will be better served with a custom solution, or a hosted product like Disqus. Отсылать к таким решениям? И это после всех пафосных рассуждений о Django Way, MTV, DRY… Позорище!

И количество сторонних пагинаторов доказывает, что не я один так считаю.

Офлайн

#8 Апрель 8, 2013 18:31:27

qoqenator
От:
Зарегистрирован: 2007-08-20
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Пагинация

dnstuff
Может, она и хороша, но горький опыт научил меня, что подавляющее большинство коробочных решений джанго - откровенный хлам.
….
Позорище!

Уважаемый, по уровню ваших вопросов, видно, что вы далеко не специалист. Не кажется ли вам, что при таком уровне владения предметом, выносить категорические суждения не прилично?

Комментарии - слишком высокоуровневое приложение, чтобы его можно было сделать и гибким и производительным для всех.
А все паджинаторы, которые вы нагуглили - обвязки вокруг коробочного, которые просто расширяют её. Откройте исходники и почитайте, вместо того чтобы писать глупости.



Офлайн

#9 Апрель 8, 2013 18:43:09

dnstuff
Зарегистрирован: 2012-11-05
Сообщения: 113
Репутация: +  1  -
Профиль   Отправить e-mail  

Пагинация

qoqenator
Я ответил на заданный мне вопрос. Надеюсь, на личное мнение я имею право?
А все паджинаторы, которые вы нагуглили - обвязки вокруг коробочного, которые просто расширяют её.
Да. Поэтому я взял уже обработанное напильником решение, а не джанговскую заготовку.

Офлайн

#10 Апрель 8, 2013 19:27:16

buddha
От:
Зарегистрирован: 2012-03-02
Сообщения: 422
Репутация: +  15  -
Профиль   Отправить e-mail  

Пагинация

Вообще сама пагинация в себя не может включать чего-то такого, что нельзя было бы самоу доделать. Это же просто странички порциями по GET запросу с параметром.
Сам я не раз брал родную пагинацию и всего мне хватало. К тому же там есть всякие параметры , которыми можно отлично пользоваться. А всякие примочки всё равно нужно допиливать через JS на клиентской стороне.

А вот сразу так думать, что стоит брать стороннее приложение, не выяснив возможностей коробочного, по моему это очень глубокое заблуждение. Тем более как сказал выше qoqenator про обёртку…

Про приложение комментариев я не знал. Щас почитаю. Но и с ними не особо стремился брать сторонние решения. Хотя комментарии куда сложнее пагинации.
Я к тому, что в случае пагинации, оно того не стоит брать стороннее приложение… Как то так.
Самый главный минус в том, что своей головой меньше думаем в таком случае(хотя в объемный задачах это большой плюс)

Отредактировано buddha (Апрель 8, 2013 19:29:36)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version