• Почему функция выполняется?

    @antonksa
    Извени... Тут ошибка:

    80lvl самотроллинга.
    Ответ написан
    Комментировать
  • Как взять значение value у select (ChoiceField)?

    @antonksa
    Если вам уж так хочется извращений, то
    class ФормаСортировки(forms.Form):
    
        список_цен = [
            ('no', 'не важно'),
            ('little', 'сначала дешёвые'),
            ('big', 'сначала дорогие'),
        ]
        категория = forms.ChoiceField(label= '', initial= 'цена', choices= список_цен)

    вполне разрешено синтаксисом питона.
    Ответ написан
    Комментировать
  • Как преобразовать список с именами методов в список методов в Python3?

    @antonksa
    Как вам уже сказали выше напишите вместо
    func for func in dir(self)
    вот так
    attr_name for attr_name in dir(self)
    и сразу поймете почему у вас так вышло.
    Ответ написан
    Комментировать
  • Рекавери несколько раз?

    @antonksa
    А кого ломаете, хорошего человека или редиску?
    Ответ написан
    3 комментария
  • Какие скилы нужны чтобы устроится python программистом?

    @antonksa
    Советую зарегистрироваться на Upwork, разобравшись предварительно как выводить деньги, как платить налоги.
    После этого нужно много и упорно браться за разные проекты, не обязательно помпезные и обильно оплачиваемые.
    Основной задачей будет набивание кармы и, самое главное, приобретение опыта программирования. Как говорит мой знакомый - опыт не триппер, сразу не подхватишь. Думаю через годик, когда вы прокачаете скилл и выйдете на полтора-два килодоллара в месяц не выходя из квартиры, то сможете сам ответить на свой собственный вопрос.

    Ну а там как всегда - трактор, Канада или загнивающая Америка, хотя я бы конечно рекомендовал Европу - домой в гости летать ближе и дешевле. И как-то европейцы к нам ближе по менталитету. Особенно в какой-нибудь Польше или Чехии.

    ЗЫ. Только ничего не бояться. Половина индусов которых выгоняли из проектов, в которых я работал, трудились получая $15-$20 в час и при этом не смогли бы и половины от того, что вы описали.
    Ответ написан
    4 комментария
  • Как импортировать переменную с библиотеками?

    @antonksa
    Я скажу как, если вы ответите на вопрос "зачем".
    Ответ написан
  • Как провериться на админа в шаблоне Django?

    @antonksa
    Давайте по порядку.

    1. Шаблонизатор джанго. Принимает на вход html (на самом деле не тольк, а любой текстовый файл) и коробку с новогодними подарками (нет) переменными, так называемый контекст. При обработке шаблона шаблонизатор заменяет специальный синтаксис {{ имя_переменной }} которые он ищет в контекстте (контекст это обычный словарь ключ-значение).

    2. User. Юзер это встроенная в джанго модель юзера. Ее можно заменить своей, но 90% используется эта. Middleware авторизации получает объект запроса, перед тем как он будет передан на обработку во View. В 90% случаев опять же используется встроенная миддлварь из модуля django.contrib.auth. Миддлварь ковыряется в куках, находит session_key и ищет в базе данных (в 90% случаев, ну вы понели) какому юзеру соответствует эта сессия. После этого добавляется/модифицируется property экземпляра HttpRequest. Этому аттрибуту присваивается выковырянный из БД экземпляр User или, если юзер не авторизован, AnonymousUser.

    3. View вызывает функцию render которая принимает шаблон и контекст. для сбора контекста у класса View есть метод get_context который собирает контекст в кучу. Даже если вы просто написали самый банальный
    class MyFuckingView(TemplateView):
        template_name = 'some/module/template.html'

    то при обработке get запроса будет вызван get_context из родительского класса TemplateView.

    4. По умолчанию джанга пропихивает в контекст request и еще некоторые вещи ( экземпляр view, который был использован и в зависимости от использованного CBV (class based view) там может быть queryset, object и другие штуки. Еще раз, это встроенный функционал, поэтому если вы модифицируете контекст, то вам всегда нужно вызывать метод родителя, чтобы это не потерялось:
    class MyFuckingView(TemplateView):
        template_name = 'some/module/template.html'
    
        def get_context(self):
            ctx = super().get_context()
            ctx['model_name'] = 'Sasha Grey'
            ctx['category'] = 'Milf anal'
            return ctx


    5. Наконец резюмируя, в вашем случае в контексте должен быть request. is_admin там могло появиться только принудительно. Модифицируйте шаблон:
    {% if request.user.is_admin %}
        <a href="#" class="edit-button">Edit</a>
    {% endif %}

    и все должно заработать. И перечитайте то что я писал выше - туториал по джанго можно осилить за день-два, это очень с одной стороны простой и с другой продуманный и вымученный за 13 лет существования всем сообществом фреймворк.
    Ответ написан
  • Что это за объект {'error_message': "you don't select a choice."}?

    @antonksa
    @muxui
    Это ассоциативный массив.

    Это п...дец.

    Функция render() как я понял, по итогу возвращает ответ в виде JSON'a из массива.

    Вот нахера писать, если вообще не понимаешь о чем???!!!
    Ответ написан
    2 комментария
  • Как решить проблему callback API VK?

    @antonksa
    Можно скромно поинтересоваться, какое отношение имеет callback к заданному вопросу?
    Ответ написан
  • Наибольшая невозрастающая подпоследовательность. Как оптимизировать алгоритм на Python?

    @antonksa
    Мадам, если этот реально Ваш код, то поверьте, у вас нет проблем и все в порядке. Многие "программисты" даже не смогут понять что тут написано. По сабжу мне лень настолько глубоко ковыряться в задаче, но если решение не проходит, то не факт что это ваша проблема, возможно у ребят в среде стоит слишком маленький таймаут на исполнение тестов. Скорость чаще всего теряется на вложенных циклах, у вас есть один for с вложенным while, while опасная штука, которая может приводить к бесконечным зацикливаниям. Проверьте ваш код, чтобы он не мог при определенных условиях переходить к бесконечному исполнению.
    Ответ написан
    1 комментарий
  • Не парсится дата с сайта. Что делать?

    @antonksa
    5df6dc13e1b67951987919.png
    Вам там уже трудолюбиво JSONчики с данными сложили, и в таблицах все есть.

    при парсинге данных под датой получаю число в ##

    Ну так оно так в HTML с сервера и приехало. Или вы даже не смотрели что вам приезжает. А-а-а, ну тогда даже не знаю как помочь, наверное вам необходимо подтянуть скилл. Дерзайте.
    Ответ написан
    2 комментария
  • AJAX с DJANGO, что можно, а что нет?

    @antonksa
    Как сказал Сергей - вы на правильном пути. Начните только сразу использовать JS фреймворки, например Vue, это сэкономит вам пару килограммов нервов.
    Ответ написан
    Комментировать
  • Как подключить channels 2 к Django?

    @antonksa
    Лучше используйте aiohttp.

    У меня сделано так:
    1. Юзер подключается к Aiohttp к определенному урлу.
    2. Aiohttp в процессе создание вебсокета дергает системное апи в джанге, получая id юзера.
    3. Если юзер авторизован, то Aiohttp добавляет вебсокет во внутренний реестр соединений. У меня это обычный словарь, где ключом является id юзера. Соответственно при закрытии сокета или его отваливании из реестра он удаляется. Таким образом в любой момент можно получить все открытые сокеты юзера.
    4. Джанга пишет в RabbitMQ ивенты, например SEND_MESSAGE с JSON контекстом (id юзера, текст сообщения и т.д.)
    5. Aiohttp вычитывает сообщения из кролика и пропихивает их в соответсвующие вебсокеты.
    6. Если например нужно подтверждение получения, то Aiohttp не найдя открытого сокета для юзера может дернуть системное апи в джанге, сказав ей, что юзер оффлайн. Также можно организовать системное апи в джанге, куда Aiohttp будет ходить при установлении сокета и проверять на список недоставленных сообщений.
    7. Profit. Тут вообще большое поле для экспериментов, одно могу сказать точно, через год использования Channels еще в 2017 я устал жевать кактус и стал использовать синхронные и асинхронные фреймворки там, где это возможно, прекратив скрещивать ежа и ужа.
    Ответ написан
    Комментировать
  • Как запустить сервер на python,если показывает ошибку?

    @antonksa
    manage.py это текстовый файл. Шелл вам говорит, что для него это не является исполняемым файлом, программой или встроенной (внешней) командой.

    Вам необходимо запустить интерпретатор питона, передав аргументами имя файла для исполнения и другие аргументы, т.е.:
    $> python manage.py runserver

    В принципе в шэлл можно прописать биндинги (привязки) и при попытке вызвать .py файл под капотом будет вызываться интрепретатор питона, но вам главное понять, что нельзя просто написать $> manage.py, в любом случае нужно стартовать питон, который уже будет выполнять код из этого файла.
    Ответ написан
    2 комментария
  • Как сделать распознавание цифр на изображении?

    @antonksa
    Думал о нейронной сети, но мне кажется это будет излишне для этой задачи (или же нет?) потому что цифры одинаковые по шрифту, цвету и размеру, да и выглядит как-то сложно.


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

    @antonksa
    Я использую в своем коде следующее решение, найденное на stackoverflow:
    def build_unique_list_keep_order(seq):
        seen = set()
        seen_add = seen.add
        return [x for x in seq if not (x in seen or seen_add(x))]
    Ответ написан
  • Ошибка импорта библиотеки, как решить?

    @antonksa
    Почитайте как питон ищет модули.
    Папки, в которых лежат модули должны быть в PYTHONPATH либо модули должны быть установлены через Pip.

    Питон, который вы запускаете через subprocess не может найти модуль. Вам необходимо создать виртуальное пространство с питоном, установить туда vk_api и запускать именно 'C:/virtualenvs/shitenv/bin/python.exe' в пакетах которого будет модуль.

    И еще, бегите с венды.
    Ответ написан
  • Почему **kwargs не может принять словарь с ключом int?

    @antonksa
    sswwssww, вы сами подумайте... То что вы пытаетесь сделать эквивалентно
    tst_func(t=2, 2='asdf')
    Как вы вообще себе это представляете?
    print(2)
    >>> asdf
    type(2)
    >>> str

    вот так?!
    Ответ написан
    Комментировать
  • Какова ошибка в этом коде(python)?

    @antonksa
    Это гениально.

    по сабжу. POST данные нельзя передать именовынными параметрами. Requests ожидает специальный параметр data:
    req = requests.post('https://ip.kl.com.ua/index.php', data={'ip': ipp})
    Ответ написан
    Комментировать