Задать вопрос
  • Dual-boot Linux и Windows с разных дисков?

    @AlexanderMi Автор вопроса
    Software Developer
    Решение в моем случае такое:
    В установщике линукс, на этапе выбора варианта работы с диском выбираете "другое".
    Находите свой отдельный хард под линукс, создаете на нем новую таблицу разделов.
    Свободное пространство делите на 4 части:
    1. Тип: Загрузочный EFI, Размер: 650 Mb, остальное по-умолчанию.
    2. Тип: Файловая система ext4, Размер: 20 Гб+, Точка монтирования: /, остальное по-умолчанию.
    3. Тип: Подкачка (SWAP), Размер: в два раза больше максимального объема RAM + 1-2 Гб сверху, остальное по-умолчанию.
    4. Тип: Файловая система ext4, Размер: всё оставшееся, Точка монтирования: /home, остальное по-умолчанию.


    Место установки загрузчика - сектор EFI который создали выше на этом же харде.

    В результате система встала на этот хард, загрузчик на SDD обновился и позволяет грузиться в обе системы.
    Ответ написан
    Комментировать
  • Как решить проблему связанную с созданием проекта в pycharm?

    darina46722
    @darina46722
    Отталкивайтесь от версии Python.
    Пример с версией питона 3.8:
    sudo apt-get install python3.8-distutils

    Заработало)
    Ответ написан
    Комментировать
  • Навигация по pgAdmin 4, просмотр записей таблиц?

    @mezhuev
    Системный администратор
    Через контекстное меню таблицы:
    4038b3f76392a2db5481262932949bcf.png
    Ответ написан
    5 комментариев
  • Как в Django сделать извлечение данных из POST-запроса в json?

    maximkv25
    @maximkv25
    web-developer
    def example(request):
        try:
            data = json.loads(request.body.decode())
        except ValueError:
            return JsonResponse({
                'error': 'bla bla bla',
            })
    Ответ написан
    Комментировать
  • Можно ли складывать статические файлы django сразу в STATIC_ROOT?

    syschel
    @syschel
    freelance/python/django/backend
    STATIC_ROOT - дирректория где хранятся не изменяемые файлы. Как правило это вёрстка дизайна, ключи верификации и так далее. То что разработчик сайта сохранил на всегда.
    MEDIA_ROOT - Дирректория пользовательских файлов. То что заливают пользователи (аватарки, текстовики/архивы), то что движок может генерировать сам (к примеру скрипт тырит картинки с другого сайта и складирует тут).

    Я не понимаю откуда Django собирает эти файлы.

    Есть папка, куда предварительно скидывает статичные файлы разработчик. Пути пишутся в STATICFILES_DIRS. После применения collectstatic, файлы переносятся (клонируются) в папку путь к которой указан в STATIC_ROOT.

    Мой вариант (1.6.)
    import os
    PROJECT_PATH = os.path.abspath(os.path.dirname(__file__))
    MEDIA_ROOT = os.path.join(PROJECT_PATH, "media")
    MEDIA_URL = '/media/'
    STATIC_ROOT = os.path.join(PROJECT_PATH, "static")
    STATIC_URL = '/static/'
    STATICFILES_DIRS = (
        os.path.join(PROJECT_PATH, "dev_static"),
    )


    И да, самое главное. Да! Складывать сразу можно, джанго не обидится. А вот в обратку, сложить в STATICFILES_DIRS и не выполнить collectstatic, а потом надеяться увидеть файлы в STATIC_ROOT, нельзя.
    Ответ написан
    3 комментария
  • Как устранить ошибку ssl сертификата в Python?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Устанавливаете пакет свежих корневых сертификатов
    pip install certifi
    и используете их для валидации
    import certifi
    
    r = requests.get(url, verify=certifi.where())
    Ответ написан
  • Что написать на Python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    1. Начните с утилит командной строки.
      • Освойте argparse, pathlib, yaml-конфиги, sqlite, концепцию пайпов, стандартные потоки ввода-вывода, цветной вывод в терминал.
      • Сделайте тулзу для автоматической разгрузки флешек от фотоаппарата. Пусть забирает все фотки с подключенной флешки, раскидывает по папкам с датами в каталоге хранилища, находит дубли, отделяет RAW'ы, правит EXIF, привязывает гео-метки по треку, индексирует в sqlite, находит похожие (opencv), находит и отделяет серии брекетинга для HDR, делает и восстанавливает бэкапы...
      • Сделайте CLI тулзу, которая качает спутниковые снимки региона и клеит для печати на фотообои или большой формат с рамкой, легендой и масштабной линеечкой.
    2. Попробуйте себя в бэкенде:
      • Освойте Flask.
      • Поиграйтесь с Django (сделайте себе уже сайт с вашими проектами, блогом, гостевой, галереей и админкой на готовых компонентах и дизайне).
      • Сделайте свой:
        • уменьшатель ссылок,
        • хостинг записок через QR-коды,
        • TODO-list,
        • анонимный интернет-чат на web-сокетах,
        • свою интернет-радиостанцию для семьи (с ротацией, новостными и погодными вставками, напоминалками из календаря семеных событий помощью TextToSpeech).
      • Попробуйте прикрутить к сайту донаты, принимать платежи.
      • Сделайте свой сайт, который присылает (можно за денежку) выбранную область карты в виде страниц атласа в масштабе и с легендой на основе рендера OSM и спутниковых снимков.
    3. Поиграйтесь с ML на классических примерах.
      • Научите вашу веб-камеру в ноуте вас узнавать, фотать незнакомые лица перед вашим компом.
      • Научите комп "видеть" вашего кота в комнате, понимать когда ему надо погулять.
      • Сделайте скрипт, который находит на записях видеорегистратора гос-знаки автомобилей и сохраняет в CSV вместе с таймингом по ролику.
    4. Поиграйтесь с MicroPython на NodeMCU (ESP8266).
      • Сделайте и закастомизируйте на нём интернет-wifi-радиоприёмник, или детский MP3-плеер для сказок с RFID-сканером и карточками.
      • Сделайте кормушку для котейки.
      • Робота-охранника или робота теле-присутствия для квартиры...
    5. Попробуйте себя в игрострое, если душа лежит. Я бы смотрел для начала в сторону веб-игр для соц-сетей. Да, придётся окунуться немного во фронтенд, но можно найти подельника, который учится фронту.
      • Можно замутить очередной http://www.milliondollarhomepage.com,
      • огромный скетч-холст для совместного рисования в стиле https://xkcd.com/1110/ на leaflet,
      • или свой граббер и просмотрщик тайлов этого комикса и похожих.
    6. Поделайте ботов для телеги - сейчас, похоже, все этим занимаются. Этот ресурс ломится от тупых вопросов по ним, присоединяйтесь.
      • Можно замутить своего бота для скачивания видоса с ютуба (и не только) по ссылке на основе YoutubeDL.
      • Сделайте бота для чата знакомств с гео-привязкой.
      • Бота, который мониторит RSS и репостит в чат.
      • Бота, который мониторит чат и репостит в RSS через сервер на Flask или статику.
      • Сделайте автоматическую качалку и публиковалку аудиокниг с рутрекера (принять ссылку или название, скачать торрент с нужными тегами, сгенерировать запись в RSS-фид, положить в публикуемый каталог, чтобы книги можно было качать и слушать как обычные подкасты, но еще и по команде из телеги).


    Ну сколько можно ныть и вопрошать "что делать"? Огромная куча всего еще не сделана или сделана через задницу. Сделайте тоже! Пусть получится хорошо или снова через задницу, но это будет ваш опыт!
    Публикуйте свои работы в opensource на github. Изучайте best practice, осваивайте CI/CD, Docker, TDD. Подпишитесь на технологические IT-подкасты. Заведите блокнот для базз-вордов и пишите туда всё что слышите незнакомое. Возьмите в привычку обзорно изучать новые вещи каждый день, каждую неделю.
    Со временем ваш профиль в гитхабе начнёт работать на вас. Крутые конторы постоянно мониторят открытые проекты и хантят разработчиков. Хороших программистов всегда не хватает!
    Дерзайте! Хватит ныть и колебаться! Идите делать!
    Ответ написан
    Комментировать
  • Flask-wtf как сохранить значение в поле после его оправки?

    de-iure
    @de-iure Автор вопроса
    just a crazy lawyer
    Ну если кому интересно, кроме меня, решил это так: при создании экземпляра формы создается экземпляр класса хранилища, в атрибуты которого записываются значения введенные в поля формы и потом при отправке значений формы и редиректе на эту же страницу значения забираются из хранилища...

    class Value_calc():
        def __init__(self):
            self.sum_data = ''
            self.statement_data = 'value_1'


    from app.services.forms import Calck, Value_calc
    
    @bp.route('/calc', methods=['GET', 'POST'])
    def calc():
        form = Calck()
        data_form = Value_calc()                                 # экземпляр хранилища значений form
        calc_validate(form, data_form)
        return render_template('calc.html', form=form)
    
    def calc_validate(form, data_form):
        if form.validate_on_submit():
            state_fee = form.gscalc_arbitr(form.sum.data, form.statement.data)
            flash(state_fee)
            data_form.sum_data = form.sum.data
            data_form.statement_data = form.statement.data
            return redirect(url_for('services.calc'))
        else:
            form.sum.data = data_form.sum_data
            form.statement.data = data_form.statement_data
        return form.sum.data, form.statement.data
    Ответ написан
    Комментировать
  • Как настроить конверсию на отправку формы в Facebook Pixel?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Здесь полная и детальная информация с ответами на ваши вопросы:
    https://developers.facebook.com/docs/facebook-pixel
    https://developers.facebook.com/docs/facebook-pixe...

    Если у вас стоит форма на сайте, то необходимо отправлять данные вот этим способом https://developers.facebook.com/docs/facebook-pixe... чтобы передать данные в Facebook и в дальнейшем таргетировать ваших клиентов.
    Чтобы это все работало нормально, форму лучше отправлять через Ajax, в калбэке которого у вас будет вызов fbq() с данными клиента.
    Ответ написан
    Комментировать
  • Почему при закрытии выдает ошибку?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Методы должны вызываться на объектах, а не классах.
    class TabsWidget(QWidget):
        def __init__(self):
            ...
            self.btm.clicked.connect(self.window().close)
            ...
    Ответ написан
    3 комментария
  • Парсинг Яндекс.Поиск - как отправить каптчу?

    @g00dv1n
    Можно попробовать взять selenium webdriver. И с реального браузера отправлять запросы..Тогда капчка должна реже появлятся.
    Ответ написан
    3 комментария
  • Как удалить в Django запись из базы данных?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    accouts.objects.filter(id=3).delete()
    Ответ написан
    Комментировать
  • Как выводить поля many to many в шаблоне django?

    @Animkim
    Питон вокруг меня
    topping.pizza_set.all() или задать свой related_name.
    toppings = models.ManyToManyField(Topping, related_name='pizza')
    ---
    topping.pizza.all()
    Ответ написан
    2 комментария
  • Как в django автоматически заполнить поле при создании объекта в форме?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Во-первых, стоит сделать поле модели project скрытым полем формы:
    class AddResponseForm(forms.ModelForm):
        class Meta:
            model = Response
            fields = ('body', 'project')
            widgets = {'project': forms.HiddenInput()}


    А потом в views.py:
    form = AddResponseForm(request.POST)
    if form.is_valid():
        response = form.save(commit=False)
        response.user = request.user
        response.save()
    Ответ написан
    3 комментария
  • Как в django автоматически заполнить поле при создании объекта в форме?

    @blackbb Автор вопроса
    Вопрос закрыт. Разобрался.
    def form_valid(self, form):
            form.instance.user = self.request.user
            project = Project.objects.get(slug=self.kwargs['project_slug'])
            form.instance.project = project
            return super(ResponseCreate, self).form_valid(form)
    Ответ написан
    Комментировать
  • Django, как в queryset обратиться к полю?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    QuerySet - это коллекция элементов, соответственно, ваша задача - получить один элемент из коллекции, а потом уже получить значение атрибута этого элемента:

    projects = Project.objects.filter(customer=customer).first()
    if project is not None:
        data = project.data
    Ответ написан
    Комментировать
  • Как откатить makemigrations в django?

    fox_12
    @fox_12 Куратор тега Django
    Расставляю биты, управляю заряженными частицами
    Просто удалите файл данной миграции если она еще не применена. Исправьте и выполните makemigrations еще раз.
    По manage.py show migrations можно глянуть примененные и непримененные миграции.
    Указав номер, можно откатиться на предыдущую миграцию
    manage.py migrate <модель> <номер миграции>
    Ответ написан
    Комментировать
  • Django Rest Framework, как сохранить несколько сущностей в одном запросе?

    @Antigo_ptz Автор вопроса
    Попробовал через сериалайзер - вроде все работает

    class DirectoryItemSerializer(serializers.ModelSerializer):
    
        def create(self, validated_data):
            directoryId = validated_data['directory'].id
            isActive = True
            code = validated_data['code']
            directoryItems = DirectoryItem.objects.filter(directory=directoryId, is_active=isActive, code=code)
            if directoryItems.count() != 0:
                item = directoryItems[0]
                if item.name == validated_data['name'] and item.short_name == validated_data['short_name']:
                    raise EntityExistException()
                else:
                    item.is_active = False
                    item.save()
                    return DirectoryItem.objects.create(**validated_data)
            else:
                return DirectoryItem.objects.create(**validated_data)
    
        class Meta:
            model = DirectoryItem
            fields = '__all__'
    Ответ написан
    Комментировать
  • Как отменить коммит, но оставить все изменения?

    это отменит последний коммит, но оставит изменения
    git reset --soft HEAD~1

    а это -- дополнит текущий коммит обновленными данными.
    git commit --amend

    очень важно НЕ делать эти манипуляции если отменяемый коммит уже был залит на сервер и скачан коллегами.
    Ответ написан
    3 комментария