Privacy policyContactsAbout siteOpinionsGitHubDonate
© EVILEG 2015-2018
Recommend hosting
July 4, 2018, 6:38 a.m.


Search, QuerySet, Django, Model

In previous articles, we considered how to do a search on the site on the site. Namely:

But what if you have more than one type of content. You can have articles, comments, forum and messages on the forum. How then to be?

If you want to do everything yourself, without using third-party libraries, then you will need to do a search on all the necessary models and combine the result. I have done exactly the same on the site.

May 17, 2018, 3:50 p.m.


Django, filter, django-bootstrap3, ListView

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

May 15, 2018, 2:07 p.m.


Django, Snippet

In Django shortcuts there is a function get_object_or_404 , but there is no function get_object_or_none , which can be useful in the case when we do not want to cause error 404 immediately, but we need to perform some actions in case the object does not exist in the database data.

It was possible to find a discussion on the Internet, where developers wrote that such a functional can be easily implemented as a function until a function within the project of the developer and it is not required to introduce it into the main code.

Feb. 28, 2018, 9:57 a.m.


сортировка, sort, Django

To improve the usability of article sections, we sorted articles by date, title, and number of views. In addition, the ability to find information on articles of the section has been added. This feature is implemented through several checkboxes that add the column names for sorting in the URL of the page, respectively, the page is reloaded.

For example, there are several columns in the data model

  • title
  • pub_date
  • views

For them we will do the sorting, which in the usual query would look like this

Article.objects.all().order_by('title', 'pub_date', 'views')

But since we use checkboxes, sorting options can be present, and I can be absent. But do not we write if else blocks for every combination of checkboxes? Of course not.

Jan. 25, 2018, 5:45 a.m.
Вадим Полшков

Не могли бы вы написать, как делали на своем сайте интернационализацию и локализацию? В принципе я ее сделал, но у меня не получается сделать как у вас выбор языка в навбаре - как это реаливать? Насколько я понимаю это нужно создать несколько url один под ru, второй под en и вьюхи которые будут обрабатывать?

Jan. 16, 2018, 7:19 a.m.


Django, Search

The site has functional, thanks to which you can ask a question on the forum with an article on the site to which this question relates in one way or another. This is done through external keys from the topic on the site's forum to articles. In this case, the foreign key may not be.

article = models.ForeignKey(Article, verbose_name=_("Статья"), null=True, blank=True)

Thus, at the end of the article you can see how many questions on the forum are given for this article. This allows you to improve the page linking of the site, and also gives users the opportunity to find similar questions about the article they are studying.

The main question for me was how to implement a list of topics on the forum so as not to overload the site with additional pages that would complicate the navigation. The solution was simple enough: add a search option on the forum with additional advanced search keys. Namely, the article key, which would define the article id , for which you want to filter out all topics on the forum that contain a foreign key for an article with this id .

This approach allowed to change the main page of the forum, to expand the functionality of the forum with an additional search and to exclude the addition of a new presentation and template for new pages.

Jan. 8, 2018, 7:52 a.m.


Django, URL, JavaScript

The less information a site has to transmit to each request, the better. Because we get less load on the server and on the communication channel. The first such improvement on the site I did was loading the list of articles when navigating the page paginator.

The point is that when the user wants to go to the next page with a list of articles and clicks on the link in the paginator , the click event is intercepted, the event is canceled, but the AJAX request is sent to the server with the number of the requested page. When the server receives such a request, it only renders the list of articles and sends it back.

Jan. 5, 2018, 7:11 a.m.


Ubuntu, Django, VDS

With the growth of site functionality, as well as attendance, it was possible to successfully test the capabilities of the current VDS server, which I currently use. I would like to describe my experience with VDS, as well as show how much this VDS keeps under certain conditions and sizes of the project.

I decided to tell about it right now, because a week ago I expanded the server's capacity by purchasing additional memory.

All the further narrative will be subjective, but I hope that it will make it possible to make a general picture, so that newcomers will be able to navigate in what server they need for their needs, and this will facilitate the choice of the server.

Server Configuration

Initially, the site worked on the minimum configuration that I managed to take. The fare is $5 per month. By the way, my ISP also has a cheaper tariff (190 rubles / month), but it is fixed, whereas my current tariff allows me to configure the configuration necessary for me and increase the server's capacity to one that is not available at fixed tariffs.


  1. Processor cores: 2 x 2,7 GHz
  2. RAM: 512 Mb
  3. SSD: 5Gb
  4. OS: Ubuntu 16.04
  5. Access to the Internet: 100 Mbit/s

All configuration of the server was done exclusively through the console, without any auxiliary tools like ISP Manager, which also absorbs some of the RAM, so this modest RAM was enough for me for a long time

Dec. 30, 2017, 3:50 p.m.


чат, message, Django, chat, сообщение

According to the tradition, I will tell you about my experiences on the introduction of new functionality on the site. At the moment, this functionality is a personal message between users. Of course, this now does not work as well as in well-known social networks ... but in the end everything will work. The main feedback on the forum, please.

So. I really wanted to add personal messages on the site, especially since I already mentioned this six months ago. The question remained, how to do it. When searching on the Internet it was possible to stumble upon an option when the following data model is being formed.

  • Id of the message
  • from_user - sender
  • to_user - recipient
  • pub_date - the date of the message
  • message - message content

Tried to implement this option, but I was stopped by the fact that suddenly after personal messages I want to make chats? So why not immediately lay the foundation for chats?

Dec. 4, 2017, 8:41 p.m.


Releases, Django

Команда Django анонсировала выпуск Django 2.0

Этот выпуск начинается с использования в Django свободной формы семантического управления версиями, но нет существенных изменений в обратной совместимости (за исключением того, что был удалён Python 2.7), что было ожидаемым в выпуске 2.0. Обновление должно быть таким же, как и для предыдущих выпусков.

Примечания к выпуску

Совместимость с Python

Django 2.0 поддерживает следующие версии Python: 3.4, 3.5 и 3.6. Разработчики Django настоятельно рекомендуют именно эти версии и официально поддерживают только последнии версии данных версионных серий Python.

Django 1.11.x является последней версией, которая поддерживает Python 2.7

Django 2.0 станет последней версией с поддержкой Python 3.4. Если вы планируете развертывание Python 3.4 до конца срока службы для Django 2.0 (апрель 2019 года), то используйте Django 1.11 LTS (поддерживаемый до апреля 2020 года). Обратите внимание, однако, что конец поддержки Python 3.4 - конец марта 2019 года.

Поддержка третьесторонних библиотек для старых версий Django

После выпуска Django 2.0 Разработчики предлагают сторонним разработчикам приложений отказаться от поддержки всех версий Django до 1.11. В тоже время разработчики должны иметь возможность запускать тесты своего пакета с помощью python -Wd , чтобы отображались предупреждения об ошибках. После внесения исправлений для предупреждения об ошибке приложение должно быть совместимо с Django 2.0.

March 20, 2019, 9:01 a.m.
Геннадий Костоянский

C++ - Test 002. Constants

  • Result:0points,
  • Rating points-10
March 20, 2019, 8:46 a.m.
Геннадий Костоянский

C++ - Test 002. Constants

  • Result:25points,
  • Rating points-10
Last comments
March 20, 2019, 3:43 p.m.
Maciej Urmański

It's possible to simply add vote option for non logged users?
March 20, 2019, 9:45 a.m.
Евгений Легоцкой

Добрый день. Поппробуйте домен localhost, а url соответственно http://localhost Возможно, потребуется указать порт. Например, так http://localhost:8000
March 19, 2019, 12:57 p.m.

Добрый день. А проверить работоспособность локально как-то можно не указывая реальнй сайт (еще в разработке)
March 16, 2019, 1:55 p.m.

Спасибо за статью. Давно итересует следующий вопрос: с помощью переменных QMAKE_TARGET_COMPANYQMAKE_TARGET_PRODUCTQMAKE_TARGET_DESCRIPTIONможно задать свойства компилируемой программы, о...
March 12, 2019, 10:19 a.m.
Jean Stefanovich

Большое спасибо за разъяснения!
Now discuss on the forum
March 20, 2019, 12:26 p.m.
Евгений Легоцкой

Лучше стараться избегать этого. Нормального механизма нет. Я просто выдёргиваю из бэкенда перевёденные куски шаблона, если нужно что-то задействовать в JS.
March 17, 2019, 10:47 p.m.
Евгений Легоцкой

Добрый день. Вот, нашлось у меня немного времени. Делается это через шаблон проектирования наблюдатель.
March 15, 2019, 9:52 p.m.
Чарльз Грин

спасибо, попробую, отпишусь
March 15, 2019, 7:41 p.m.

Сори догадался)
March 12, 2019, 4:57 p.m.

Большооооое спасибо!!!!!Не передать как я вам благодарен, спасибо что всегда отзываетесь.Теперь я смогу продолжить работу в QT!!! (пробую писать бота (Я как вы могли догадаться немного не пр...
Join us in social networks

For registered users on the site there is a minimum amount of advertising