© EVILEG 2015-2018
Рекомендует хостинг
TIMEWEB
17 мая 2018 г. 15:50

DjangoКак я использовал FilterView заместо ListView для упрощения фильтрации

Django, filter, django-bootstrap3, ListView

Благодаря FilterView можно упростить и уменьшить код для отображения товаров, продуктов и тд. Что позволит уменьшить код в разы! Сначала я использовал ListView и писал много когда для того, чтобы можно было бы отфильтровать по запросам. Пока один из хороших знакомых мне не посоветовал django-filter . Прочитав про него больше я понял что это то что нужно. После, когда я хотел все свои вьюшки использовать как обьект. Это меня немного озадачило, пока знакомый снова меня не выручил подсказкой об использовании FilterView, а теперь более подробней обсудим её:

23 июня 2017 г. 8:12

DjangoDjango - Урок 025. Комплект полезных батареек Django

Battery, tagging, Framework, Django, ckeditor, REST, django-bootstrap3

Удобство разработки на Django заключается не только в том, что это уже достаточно развитый Framework с богатым функционалом, но и в наличии большого количества качественных батареек (пакетов), которые реализуют необходимый функционал, писать который самостоятельно было бы довольно затруднительно, особенно если вы занимаетесь разработкой сайта в одиночку.

В процессе вот уже более полугодовой разработки сайта на COM домене подобрался именно такой комплект, который значительно облегчает жизнь и ускоряет разработку:

  1. django-ckeditor
  2. django-autocomplete-light
  3. django-tagging
  4. django-bootstrap3
  5. django-modeltranslation
  6. django-daterange-filter
  7. django-phonenumber-field
  8. django-rest-framework
15 марта 2017 г. 18:12

DjangoDjango - Урок 020. Добавление пагинации статей на сайте с помощью ListView и django-bootstrap3

Pagination, Django, django-bootstrap3, ListView

В одной из предыдущих статей был показан вариант внедрения страницы с пагинацией статей, которая может быть главной странице сайта, например. При этом применялся django-bootstrap3.

Но если страница не представляет какого-то особенного функционала, кроме отображения списка статей, например, то необходимо использовать классы дженерики. Одним из которых является ListView . Это позволит сократить программный код проекта и соответственно упростить его.

Класс ListView позволяет указать шаблон, который будет рендериться для отображения таблицы, указать модель данных или queryset, который необходимо будет показать, а также количество объектов на страницу, которые будут выводиться при пагинации.

IndexView

Давайте вспомним, как выглядел предыдущий вариант View класса для отображения списка страниц.

class IndexView(View):
 
    def get(self, request):
        context = {}
        # Забираем все опубликованные статье отсортировав их по дате публикации
        all_articles = Article.objects.filter(article_status=True).order_by('-article_date')
        # Создаём Paginator, в который передаём статьи и указываем, 
        # что их будет 10 штук на одну страницу
        current_page = Paginator(all_articles, 10)
 
        # Pagination в django_bootstrap3 посылает запрос вот в таком виде:
        # "GET /?page=2 HTTP/1.0" 200,
        # Поэтому нужно забрать page и попытаться передать его в Paginator, 
        # для нахождения страницы
        page = request.GET.get('page')
        try:
            # Если существует, то выбираем эту страницу
            context['article_lists'] = current_page.page(page)  
        except PageNotAnInteger:
            # Если None, то выбираем первую страницу
            context['article_lists'] = current_page.page(1)  
        except EmptyPage:
            # Если вышли за последнюю страницу, то возвращаем последнюю
            context['article_lists'] = current_page.page(current_page.num_pages) 
 
        return render_to_response('home/index.html', context)
21 сентября 2016 г. 16:12

DjangoDjango - Урок 007. Добавление Pagination на основе django-bootstrap3

Pagination, django-bootstrap3, Python

Количество статей на новом сайте начало приближаться к 10 штукам, поэтому в срочном порядке добавляю Pagination, чтобы была возможность пролистывать страницы на сайте. Но поскольку уже используется модуль django-bootstrap3 , то и Pagination будет использоваться из этого модуля. Зачем же делать лишнюю работу, когда уже всё сделано? Не так ли.

Для добавления Pagination необходимо:

  1. Использовать класс Paginator из django.core.pagination;
  2. Добавить в шаблон главной страницы bootstrap_pagination с привязкой ;
  3. Добавить проверку текущего номера страницы;
  4. И ... не добавлять ничего нового в шаблоны url.
24 сентября 2018 г. 17:42
edorofeeva

C++ - Тест 001. Первая программа и типы данных

  • Результат 100баллов,
  • Очки рейтинга10
24 сентября 2018 г. 17:37
edorofeeva

C++ - Тест 001. Первая программа и типы данных

  • Результат 66баллов,
  • Очки рейтинга-1
23 сентября 2018 г. 14:38
No Names

C++ - Тест 001. Первая программа и типы данных

  • Результат 60баллов,
  • Очки рейтинга-1
Последние комментарии
25 сентября 2018 г. 15:24
pasagir

Qt/C++ - Урок 006. QSqlQueryModel - Таблицы в Qt с помощью SQL-запросов

Это запись метода которая работает параллельно с БД, данные из парсера поступают в БД и в наш метод одновременно
25 сентября 2018 г. 14:56
pasagir

Qt/C++ - Урок 006. QSqlQueryModel - Таблицы в Qt с помощью SQL-запросов

Как можно динамически отображать данные в таблице? На COM-порт непрерывно приходят данные, я их принимаю сохраняю в БД, а после остановка приема/передачи данные отображаются в таблице. В табли...
25 сентября 2018 г. 10:43
Евгений Легоцкой

Qt/C++ - Урок 017. QGraphicsScene или как работать с графикой в Qt

Прямо так не написано. Хотя соглашусь, что в качестве улучшения вызов данного метода здесь к месту.
25 сентября 2018 г. 10:37
reef425

Qt/C++ - Урок 017. QGraphicsScene или как работать с графикой в Qt

В статье написано, что таймер сработает один раз. Но это не так. Было бы хорошо добавить timer->setSingleShot(true); После инициализации таймера.
24 сентября 2018 г. 15:09
Евгений Легоцкой

Qt Linux - Урок 001. Автозапуск Qt приложения под Linux

А вот здесь у меня есть пример использования supervisor. https://evileg.com/ru/post/3/ Вся статья вам там не интересна, интересен только шаг с настройкой supervisor. Он получается ...
Сейчас обсуждают на форуме
25 сентября 2018 г. 15:57
Евгений_Канусовский@1981

Чтение файлов в python

Вот код: import sys from re import matchfrom vira import *from PyQt5 import QtCore, QtGui, QtWidgetsfrom PyQt5.QtWidgets import (QDialog, QFileDialog, QMessageBox, QLineEdit, QProgr...
25 сентября 2018 г. 13:51
DmitrySD

Трансляция видео с помощью VLC по RTP

Спасибо! Данная команда не дала результата. В итоге сделал трансляцию через ffmpeg. ffmpeg.exe -f gdigrab -framerate 30 -i desktop -vcodec libx264 -preset:v veryfast -b:v 4000k -f...
25 сентября 2018 г. 13:39
Arrow

Настройка Qt Creator для Android

Конечно отпишусь.
25 сентября 2018 г. 12:22
avovana

Автозапуск и авторестарт Qt Gui Application в Linux

Не получается... Решил пробовать скрипт, выполняемый при загрузке. В скрипте вечный цикл по старту программы.
Присоединяйтесь к нам в социальных сетях