2012-03-15 3 views
0

У меня есть новости на моем сайте с «Джеймс Беннетт - Практические проекты Django, второе издание (2009)». Поэтому я использую представления, основанные на дате, которые будут устаревать в django-1.4. Как я могу просто преобразовать свои взгляды и URL-адреса в представления на основе классов? Возможно, вы видели это, просто разместите ссылку, я не могу найти какой-либо рабочий пример, по крайней мере, для MonthMixin.Можете ли вы поделиться примером использования класса на основе MonthMixin?

+0

Вы видели [это] (https://docs.djangoproject.com/en/dev/topics/generic-views-migration/)? Может помочь вам, если вы просто хотите преобразовать функциональные элементы в представления на основе классов. – j0ker

+0

Точно, спасибо, я просто не понимаю, что такое mixins, поэтому у меня есть страх перед классами. Мои глаза теперь открываются :) И у django.views.generic.date_based есть странное поведение - это дает мне 15 записи новостей по умолчанию. Я считаю, что у меня может быть проблема, как решить эту проблему в классах. –

ответ

2

Django имеет detailed list всех новых классов и их миксов.

Вам не нужно использовать MonthMixin непосредственно, если вы не делаете что-то особенное. Для всего лишь месячного архивного просмотра используйте MonthArchiveView. Подкласс его иди.

Если вам нужна дополнительная помощь, вам нужно будет дать нам более подробную информацию о том, что вам нужно.

+0

Я думаю, что mixins является обязательным, поэтому мои мозги застревают, поэтому, когда вы сказали, что мне не нужно использовать MonthMixin напрямую, я нашел ссылку - http://martinogden.me/2011/03/27/quick -look-django-13-class-based-views/Итак, я должен сделать это так? –

+0

Нет. 'MonthArchiveView' уже включает' MonthMixin'. Он готов к работе. Опять же, если у вас есть конкретная проблема, дайте подробную информацию об этом (отредактируйте свой вопрос, не публикуйте расширенные фрагменты кода в комментариях). –

+0

просто следуйте моему ответу ниже и ответ Криса. Вы можете посмотреть документы Django и следовать за общим CBV по всей цепочке. Таким образом, вы знаете, какие взгляды предлагают то, что из коробки, что вы можете преодолеть, и если вам действительно нужна полностью настраиваемая настройка микширования. – eusid

0

Подумайте о CBV, а точнее о «Generic Class Based Views», как о большом дереве классов Python. Начиная с простейшего класса. Каждый из подклассов и над ними перемещает методы друг от друга. Например, ArchiveIndexView, как правило, представляет собой подкласс для индекса вашего сайта. Он добавляет дополнительную переменную контекста, называемую последней. Вы должны предоставить его с параметром date_field, num_latest и парами в классе представления. Вы также можете передать эти аргументы через URLConf. Тем не менее, более аккуратно и чисто, чтобы иметь логику в views.py. Это удобно, когда вы получаете его. Вы можете создавать собственные микшины, которые по существу настолько же мощны, как ваш мозг. Кроме того, микс, хотя для чего-то, что вы хотите получить на каждой странице, а может быть, тег шаблона или настраиваемый обработчик контекста в худшем случае.

Смежные вопросы