• Почему не выполняется команда save() в Django?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    В модель внесены изменения, но не произведены миграции:

    python manage.py makemigrations
    python manage.py migrate
    Ответ написан
    Комментировать
  • Какой софт использовать для верстки / программирования (Front-end)?

    SerzN1
    @SerzN1
    Challenge me!
    ИМХО:
    IDE
    brackets - для быстрых проектов (minify, coffee, less, autoprefixer и так далее)
    webstorm - для серьзных проектов
    sublime - ни туда ни сюда (не понимаю за что его выбирают, сам использовал обплевался, НЕ НАДО ПИСАТЬ МНЕ ЧТО НЕ УМЕЮ ГОТОВИТЬ)

    Косметика
    Photoshop (psd), Illustrator (svg), fireworks (векторные макеты), Clip2Net (отличная пипетка по Win+W и скриншотер с подсказками). а так же рекомендую смотреть в сторону визуальных редакторов с выдачей кода если позволяет техника и деньги , тк они в основном под мак (avocode, brackets extract, sketch и тп), так как простая нарезка стремных макетов с приветом из 90х во времена масштабиреуемой графики и ориентирования на контент никому не нужны.

    Сервер
    XAMPP или любой подходящий вариант под ваш стек от bitnami вплоть до MEAN

    Гит!
    Ответ написан
    Комментировать
  • Как бот может переслать файл с любым расширением в Telegram (aiogram)?

    @vyr0d0k
    У тебя тут достаточно много ошибок, вот как примерно должны выглядеть твои хендлеры:
    from aiogram.dispatcher import FSMContext
    
    
    @dp.message_handler(text="Отправить на проверерку", user_id=[список из ID (int) админов и исполнителей], state="*")
    async def send_order_main(message: types.Message, state: FSMContext):
        await state.set_state("название стейта")
        await message.answer("Отправьте файл заказа(файл с расширением .arexport):")
    
    
    @dp.message_handler(content_types=types.ContentType.DOCUMENT, state="название стейта")
    async def send_order_finish(message: types.Message, state: FSM Context):
        msg_document = message.document.file_id
        await dp.bot.send_document(775430746, msg_document)
        await state.reset_state()


    Если хочешь что-то ещё спросить, пиши в тг @yan_pr
    Ответ написан
    Комментировать
  • Как проверить JSON на обновления?

    @o5a
    Не совсем понятно, в чем собственно вопрос? Как сравнить 2 полученных результата json? Или как делать запрос с интервалом?
    Если объекты уникальный по id, то можно получить список (множество) идентификаторов одного запроса и другого, затем найти отличия id и по ним вывести нужные результаты из нового запроса.
    ids = {result['id'] for result in data['result']}
    print(ids)

    для json из примера получится
    {'8da31f62a40a2eb3973c9df3', '60831f62a40a2eb3973c9df3'}

    Допустим новый json пришел с доп. id (new_ids)
    {'8da31f62a40a2eb3973c9df3', '60831f62a40a2eb3973c9df3', '60831f62a40a2eb3973c9df5'}

    Соответственно получаем список новых id:
    diff_ids = new_ids - ids
    И по ним уже выводим данные:
    news = [result for result in new_data['result'] if result['id'] in diff_ids]

    где new_data это новый запрос json
    Ответ написан
    Комментировать
  • Telegram Bot на Java. Почему не приходит сообщение при нажатии на Inline кнопку?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Потому что вы создаете объект sendMessage, сетите в него текст sendMessage.setText("Напишите сумму:");, а дальше ничего не происходит.
    Вам нужен метод.execute(sendMessage) из DefaultAbsSender
    Ответ написан
    2 комментария
  • Как создать многоуровневое меню в TelegramBots API JAVA?

    @deathmurder Автор вопроса
    в этом куске кода
    execute(new SendMessage().setText(
                                update.getCallbackQuery().getData())
                                .setChatId(update.getCallbackQuery().getMessage().getChatId()));

    нужно передать в аргументы метод обработчик нашего меню, в который обязательно нужно передать chatId и строковое значение, которое приходит из CallbackQuery методом getData(), само строковое значение уже обрабатывать в непосредственно в методе которое выводит меню
    execute(menu(update.getCallbackQuery().getMessage().getChatId(), update.getCallbackQuery().getData());
    Ответ написан
    Комментировать
  • GSON - Как объявить переменные для хранения названий из сложного JSON?

    Может быть, эта статья поможет: https://habr.com/ru/company/naumen/blog/228279/
    Ответ написан
    Комментировать
  • GSON - Как объявить переменные для хранения названий из сложного JSON?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Есть такой сайт - www.jsonschema2pojo.org
    На сайте вы также найдете maven плагин для быстрой конвертации
    Результат

    -----------------------------------com.example.Address.java-----------------------------------
    
    package com.example;
    
    import com.google.gson.annotations.Expose;
    import com.google.gson.annotations.SerializedName;
    
    public class Address {
    
    @SerializedName("street")
    @Expose
    public String street;
    @SerializedName("suite")
    @Expose
    public String suite;
    @SerializedName("city")
    @Expose
    public String city;
    @SerializedName("zipcode")
    @Expose
    public String zipcode;
    @SerializedName("geo")
    @Expose
    public Geo geo;
    
    }
    -----------------------------------com.example.Company.java-----------------------------------
    
    package com.example;
    
    import com.google.gson.annotations.Expose;
    import com.google.gson.annotations.SerializedName;
    
    public class Company {
    
    @SerializedName("name")
    @Expose
    public String name;
    @SerializedName("catchPhrase")
    @Expose
    public String catchPhrase;
    @SerializedName("bs")
    @Expose
    public String bs;
    
    }
    -----------------------------------com.example.Example.java-----------------------------------
    
    package com.example;
    
    import com.google.gson.annotations.Expose;
    import com.google.gson.annotations.SerializedName;
    
    public class Example {
    
    @SerializedName("id")
    @Expose
    public int id;
    @SerializedName("name")
    @Expose
    public String name;
    @SerializedName("username")
    @Expose
    public String username;
    @SerializedName("email")
    @Expose
    public String email;
    @SerializedName("address")
    @Expose
    public Address address;
    @SerializedName("phone")
    @Expose
    public String phone;
    @SerializedName("website")
    @Expose
    public String website;
    @SerializedName("company")
    @Expose
    public Company company;
    
    }
    -----------------------------------com.example.Geo.java-----------------------------------
    
    package com.example;
    
    import com.google.gson.annotations.Expose;
    import com.google.gson.annotations.SerializedName;
    
    public class Geo {
    
    @SerializedName("lat")
    @Expose
    public String lat;
    @SerializedName("lng")
    @Expose
    public String lng;
    
    }
    Ответ написан
    1 комментарий
  • Нахождение числа в массиве. Как вывести только один ответ?

    LaRN
    @LaRN
    Senior Developer
    При выходе из цикла всегда будет писать что не найдено, нужно ещё флаг использовать.
    Например так.
    boolean f = false;
    for (int j : arr) {
    if (j == x) {
    f = true;
    break;
    }
    }
    if (!f)
    {System.out.println("Нету!");}
    else
    {System.out.println("Есть!");}
    Ответ написан
    Комментировать
  • Нахождение числа в массиве. Как вывести только один ответ?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Заменить break на return
    Ответ написан
    Комментировать
  • Какая может быть ошибка у меня при POST запросе?

    @Makarych90
    может есть требование к минимальной длине строки? меньше 6 символов значит пустая строка. Бредово звучит конечно, но с другой стороны что ожидать от провайдера, который не документирует API функции
    Ответ написан
    1 комментарий
  • Почему запрос SQL возвращает пустоту?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    У вас максимальная модель выбирается среди всех продуктов: select max(model) from product
    и это может оказаться не принтер. А потом вы ищете принтер с именно такой моделью. Видимо такого нет.
    Ответ написан
    2 комментария
  • Почему запрос SQL возвращает пустоту?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    У Вас model - это число? Агрегирующая функция max применяется только к числам.
    Запрос
    select max(model) from product
    что Вам возвращает?
    Ответ написан
    1 комментарий
  • Размер текста по ширине контейнера?

    @VVS10 Автор вопроса
    Решил проблему с помощью Fitty.
    Возможно кому то будет полезно в будущем)
    Документация: https://github.com/rikschennink/fitty
    Пример: https://rikschennink.github.io/fitty/
    Ответ написан
    Комментировать
  • Как сортировать и вывести в список места по возрастанию смотря на дистанцию от геопозиции пользователя на python с помощью geopy?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Во-первых, у вас тут нет "словаря", из которого можно "отправить все места списком из словаря". У вас есть tuple - это не словарь. Это кортеж. Кортеж в обычном смысле не сортируется, он по сути своей неизменная структура. Хотя, конечно, если его содержимое переложить в структуру, которая может меняться, то переложенное содержимое отсортировать можно. Но, мне думается, так делать не нужно.

    Во-вторых, вы там получаете список дистанций distance. По-идее, индексы значений этого списка соответствуют индексам вашего кортежа, и можно перебирать значения дистанций от максимального к минимальному и по найденному следующему значению получать его индекс и использовать как индекс для получения значения из кортежа.
    Грубо говоря, находим максимальное значение в списке distance, считаем его текущим, находим индекс текущего значения, по нему получаем значение из кортежа. Это у вас уже реализовано. А затем ищем значение в списке distance, которое меньше текущего, но больше всех остальных. Считаем его текущим. Получаем его индекс, получаем по этому индексу значение из кортежа, повторяем цикл поиска следующего значения дистанции меньше текущего, пока существует значение дистанции меньше текущего.
    Ответ написан
    6 комментариев
  • Как в Python вычислить ближайшие точки по имеющимся GPS-координатам?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    ищет ближайшие рестораны, координаты которых есть у меня в словаре

    Если ваш бот планирует расти и поддерживать много всяких POI, в том числе помимо ресторанов, то имеет смысл вынести всё это в БД.
    Удобно использовать postgres с расширением postgis. В составе этого расширения есть оптимизированные функции поиска ближайших точек, кроме того в БД удобно хранить сами POI, их можно импортировать из OSM.

    Кроме этого не во всех подобных задачах правильно использовать геометрические метрики для нахождения ближайших точек.
    Какая-то точка может быть ближе к заданной геометрически, но она может оказаться на другой стороне реки, а крюк через мост до нее будет очень большим.
    Для этого вам лучше использовать какое-нибудь решение, учитывающее роутинг. Например OSRM. Такие сервисы зачастую умеют строить матрицы расстояний между точками. OSRM, кстати, отлично развёртывается в докере, на основе данных OSM он может строить как пешие маршруты (если, конечно, ваш регион покрыт пешими тропами в OSM), так и в других модальностях.
    Полезным артефактом от OSRM будет также геометрия маршрута и путевые точки по ходу его следования. Также OSRM в своём API имеет быстрый метод динамической привязки координат к графу дорог. Может пригодиться, скажем, для отслеживания курьера и предупреждения о его прибытии.
    Ответ написан
    Комментировать