Задать вопрос
  • Можно ли заряжать аккумуляторы GP 2700 зарядным liitokala lii-500?

    15432
    @15432
    Системный программист ^_^
    Да, среднее напряжение работы Ni-Mh аккумуляторов 1.2в, но заряжать их нужно до 1.5в, всё ок
    Ответ написан
    Комментировать
  • Можно ли заряжать аккумуляторы GP 2700 зарядным liitokala lii-500?

    Jump
    @Jump
    Системный администратор со стажем.
    На аккумуляторах написано напряжение 1.2 вольта
    Да, это рабочее напряжение Ni-Mh аккумулятора.
    Рабочее - 1,2 вольта.
    Напряжение без нагрузки полностью заряженного аккумулятора - 1,4 вольта.

    Следовательно чтобы зарядить аккумулятор напряжение заряда должно быть более 1,4 вольта.
    Ответ написан
    Комментировать
  • Как обуздать Django messages?

    winordie
    @winordie
    Лучшая документация -- исходники
    Давайте посмотрим как работает framework messages.

    https://github.com/django/django/blob/master/djang...
    def messages(request):
        return {
            'messages': get_messages(request),
            'DEFAULT_MESSAGE_LEVELS': DEFAULT_LEVELS,
        }
    ...
    def get_messages(request):
        if hasattr(request, '_messages'):
            return request._messages
        else:
            return []

    Так messages попадают на страницу. Т.е. они берутся из request._messages. Как же они туда попадают?

    https://github.com/django/django/blob/master/djang...
    class MessageMiddleware(MiddlewareMixin):
        def process_request(self, request):
            request._messages = default_storage(request)
    ...
    def default_storage(request):
        return import_string(settings.MESSAGE_STORAGE)(request)
    ...
    MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'

    Значит в request._messages у нас лежит FallbackStorage(request)

    Перейдем к нашему коду
    messages.error(request, 'Ваш диапазон дат занят для данного объекта.')

    Что тут происходит? Посмотрим:
    https://github.com/django/django/blob/master/djang...
    def error(request, message, extra_tags='', fail_silently=False):
        add_message(request, constants.ERROR, message, extra_tags=extra_tags,
                    fail_silently=fail_silently)
    ...
    def add_message(request, level, message, extra_tags='', fail_silently=False):
        if not isinstance(request, HttpRequest):
            raise TypeError("add_message() argument must be an HttpRequest object, "
                            "not '%s'." % request.__class__.__name__)
        if hasattr(request, '_messages'):
            return request._messages.add(level, message, extra_tags)  # *** THIS ***
        if not fail_silently:
            raise MessageFailure('You cannot add messages without installing '
                        'django.contrib.messages.middleware.MessageMiddleware')

    Ага, вызывается метод add знакомого нам объекта FallbackStorage.
    Ему передается в качестве параметров:
    - level = constants.ERROR = 40
    - message = 'Ваш диапазон дат занят для данного объекта.'
    - extra_tags = ''

    Посмотрим на этот метод
    https://github.com/django/django/blob/master/djang...
    def add(self, level, message, extra_tags=''):
            if not message:
                return
            level = int(level)
            if level < self.level:
                return
            # Add the message.
            self.added_new = True
            message = Message(level, message, extra_tags=extra_tags)
            self._queued_messages.append(message)
    ...
    def _get_level(self):
            if not hasattr(self, '_level'):
                self._level = getattr(settings, 'MESSAGE_LEVEL', constants.INFO)
            return self._level

    Из этого кода можно сделать вывод что сообщение попадает в очередь сообщений если его уровень более или равен тому который задан в settings.MESSAGE_LEVEL (по умолчанию = contants.INFO = 20)

    Таким образом чтобы добавлялись только наши сообщения необходимо:
    1) в settings.py установить
    # settings.py
    ...
    MY_SUPER_ERROR = 80
    MESSAGE_LEVEL = MY_SUPER_ERROR
    ...

    2) Во вью писать
    if not available_cars:
            carstoshow = None
            messages.add_message(request, settings.MY_SUPER_ERROR, 'Ваш диапазон дат занят для данного объекта.')
            return redirect('car_detail', pk=car_used_id)
    Ответ написан
    1 комментарий
  • Будет ли гугл индексировать контент, который выводится через базу данных?

    Поисковые системы, как и любые другие посетители вашего сайта, работают с итоговой html-страницей. Как именно эта страница сгенерирована (при помощи php или любого другого языка программирования или набрана нежными руками пленных девственниц) совершенно не важно.
    Ответ написан
    Комментировать
  • Где лучше покупать статьи для сайта?

    kopcap_va
    @kopcap_va
    SEO Consultant
    Есть много бирж копирайтинга: contentmonster.ru, advego.ru, etxt.ru и т.д. - найти их не так сложно.
    Зарегистрируйтесь в каждой, посмотрите сколько исполнителей, цены и т.д.

    Далее по критериям цены/отзывов нужно отобрать копирайтеров - готовите для них хорошее ТЗ. Уделите этому особенное внимание. Готовые статьи не всегда бывают качественными, очень много слабого рерайта. Если вы напишете подробное ТЗ с перечнем того, что должно быть в тексте и как это все распределить - это решит множество проблем, т.к. часто копирайтеры включают "фантазию" и льют в тексты много воды.

    Можно сразу дать задание, к примеру, 10 исполнителям по оптимальной для вас цене, потом сравнить качество работ - по опыту, обычно из 10 попадается около 1-2 исполнителей, с которыми можно работать дальше.

    Далее на постоянной основе можете заказывать у своих избранных райтеров тексты.

    p.s. Можно искать исполнителей на форумах - Маул, вебмастерс, серч и др.
    Ответ написан
    Комментировать
  • Как изменить исходный код пакета python django?

    sim3x
    @sim3x
    если ты не знаешь что происходит = тебе не надо менять mptt
    Ответ написан
    Комментировать
  • Установка python пакетов mac os?

    @idap
    интересуюсь python, latex, linux, ML, AI
    Посмотрите на which python, which pip, pip --version, и согласуйте это между собой. Возможно, достаточно будет изменить PATH, или как советовали выше, изменить ссылку.
    Иногда еще brew при установке определяет, что что-то пошло не так и говорит как это можно исправить. В brew, кстати, есть команда link, и он сам может заново создать ссылки, которые должны быть.
    Ответ написан
    Комментировать