• Как сделать кастомную страницу 404 в django?

    Echofoe
    @Echofoe
    Веб-разработчик
    1. В приложении основного проекта делаешь views.py (да, так можно)
    2. В urls.py основного приложения проекта:
    handler404 = 'some_project.views.page_not_found_view'

    3. Собественно говоря, код для some_project/views.py:
    def page_not_found_view(request, exception):
        return render(request, '404/404.html', status=404)


    Не забываем DEBUG в False, также ALLOWED_HOSTS = ['*']. Дальше кастомизируем, как хотим.
    Ответ написан
    Комментировать
  • Как из отношения many-to-many вытянуть объекты, предварительно отфильтровав их по отношению foreignkey?

    Echofoe
    @Echofoe Автор вопроса
    Веб-разработчик
    Ура, получилось. Не знаю, как это выглядит красиво или нет, но в внутри класса Tariff нужно описать функцию:
    def get_channels(self):
        channels = list(str(p).split(':') for p in self.channels_list.all())
        channel_list = []
        for category, name in groupby(channels, lambda x: x[0]):
            channels_list_by_group = ";".join([channel[1] for channel in name])
            channels_list_by_category = (category + ":" + channels_list_by_group + ".")
            print(channels_list_by_category)
            channel_list.append(channels_list_by_category)
        return ''.join(channel_list)

    Таким образом, мы получим следующий channel_list (пример того, что тянется из моей БД обработанной данной функцией):
    Эфирные каналы: Карусель; ОТР; ТВ Центр; РЕН ТВ; Спас; СТС; Домашний; ТВ 3; ПЯТНИЦА!; Звезда; Мир; ТНТ; Муз ТВ; Первый канал; Россия; Матч ТВ; НТВ; 5 канал; Россия К; Россия 24. Развлекательные: 8 канал; 7TV. Детские: Da Vinci. Кино и сериалы: НТВ Хит. Познавательные: Загородная жизнь.

    Дальше остается только поработать над этим списком и форматировать как вздумается. Надеюсь кому-нибудь это поможет. Если кто-то предложит вариант получше, буду очень рад ознакомиться с предложением.
    Ответ написан
    Комментировать