• Что такое перекрашенный IP?

    solotony
    @solotony
    покоряю пик Балмера
    Встречал эту фразу как перевод NAT (Network Address Translation)
    Ответ написан
    Комментировать
  • Как использовать Django AutocompleteFilter через 2 relations?

    solotony
    @solotony Автор вопроса
    покоряю пик Балмера
    на SO мне подсказали решение - использовать не AutocompleteFilter а AutocompleteFilterFactory

    WorkplaceFilter = AutocompleteFilterFactory(
        'Workspace', 'user__workspace'
    )
    
    @admin.register(Chat)
    class ChatAdmin(models.ModelAdmin):
        list_filter = [WorkplaceFilter]
    Ответ написан
    Комментировать
  • Django CMS для образовательного проекта, какие плагины требуются?

    solotony
    @solotony
    покоряю пик Балмера
    Подойдёт. Но для того что бы все это заставить хорошо работать потребуется хорошо поработать.
    Ответ написан
    Комментировать
  • Как починить циклический импорт?

    solotony
    @solotony
    покоряю пик Балмера
    использовать локальный импорт
    Ответ написан
  • Как лучше оптимизировать SQL?

    solotony
    @solotony
    покоряю пик Балмера
    1) зачем нужен `select_related("gender", "categories")` ? ведь и то и другое не являются relations

    2) всегда ли gender="man" ?

    в итоге я бы сделал так

    GENDER_CATEGORIES = [
        ("men", 1),  
        ("men", 2),  
        ("men", 3)   
    ]
    
    from django.db.models import Q
    
    def catalog(request):
        filters = [Q(gender=gender, categories=category_id) for gender, category_id in GENDER_CATEGORIES]
        query = Q()
        for q_filter in filters:
            query |= q_filter
    
        products = Products.objects.filter(query).only("id", "title", "price", "image")
    
        products_by_category = {category[1]: [] for category in GENDER_CATEGORIES}
        for product in products:
            for gender, category_id in GENDER_CATEGORIES:
                if product.gender == gender and product.categories == category_id:
                    products_by_category[category_id].append(product)
                    break
    
        context = {"products_by_category": products_by_category}
        return render(request, 'catalog.html', context)


    ну и еще в тапл добавить имя 3-м параметром
    Ответ написан
  • Как реализовать такую структуру данных?

    solotony
    @solotony
    покоряю пик Балмера
    class Author(models.Model):
        name = models.CharField(max_length=100)
        # Другие поля автора
    
    class Publication(models.Model):
        title = models.CharField(max_length=100)
        # Другие поля публикации
        authors = models.ManyToManyField(Author, through='Affiliation')
    
    class Affiliation(models.Model):
        author = models.ForeignKey(Author, on_delete=models.CASCADE)
        publication = models.ForeignKey(Publication, on_delete=models.CASCADE)
        affiliation = models.CharField(max_length=100)
    Ответ написан
    Комментировать
  • Насколько законно для крупной компании пробивать человека по почте?

    solotony
    @solotony
    покоряю пик Балмера
    Имя, сестра, имя!

    Что за библиотека то?
    Мне даже интересно стало что будет если я им напишу с фейквого адреса и немного их оскорблю :)

    p.s. и да, в россии нет закона запрещающего что-то искать в открытых источниках. а если в закрытых - 272 УК ... но это еще надо доказать.
    Ответ написан
    Комментировать
  • Как размыть фон под текстом?

    solotony
    @solotony
    покоряю пик Балмера
    from PIL import Image, ImageDraw, ImageFont, ImageFilter
    
    # Откройте исходное изображение
    img = Image.open('3.png')
    
    # Создайте копию изображения
    img_copy = img.copy()
    
    # Создайте изображение с текстом на черном фоне
    mask = Image.new('L', img.size, 0)
    draw = ImageDraw.Draw(mask)
    font = ImageFont.truetype('3.ttf', size=54)
    text_position = (297, 553)
    draw.text(text_position, 'Your Text', font=font, fill=255)
    
    # Размойте маску
    blurred_mask = mask.filter(ImageFilter.GaussianBlur(10))  # Измените радиус размытия по вашему усмотрению
    
    # Примените размытие к фону
    img_copy.paste(img_copy.filter(ImageFilter.GaussianBlur(10)), (0, 0), blurred_mask)
    
    # Наложите текст на размытый фон
    draw = ImageDraw.Draw(img_copy)
    draw.text(text_position, 'Your Text', font=font, fill=('#00bc44'))
    
    # Сохраните результат
    img_copy.save('output.png')
    Ответ написан
    Комментировать
  • Как загрузить профиль в Selenium Chrome на Python?

    solotony
    @solotony
    покоряю пик Балмера
    Если путь к профилю содержит пробелы, вы должны правильно обрабатывать этот путь, чтобы Selenium могла корректно его использовать. Для этого вы можете заключить путь в двойные кавычки (") при создании опции --user-data-dir. Вот как это можно сделать:

    from selenium import webdriver
    
    # Задайте путь к папке с вашим профилем, включая пробелы
    profile_directory = r'C:\путь к папке с профилем с пробелами'
    
    # Создайте объект ChromeOptions и установите опцию для загрузки профиля
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument(f'--user-data-dir="{profile_directory}"')
    
    # Запустите браузер с опциями
    driver = webdriver.Chrome(chrome_options=chrome_options)
    
    # Теперь браузер будет запущен с вашим профилем, который содержит пробелы в пути
    Ответ написан
    Комментировать
  • Почему не работают стили в django?

    solotony
    @solotony
    покоряю пик Балмера
    Проблемы с применением стилей на веб-сайте Django могут иметь несколько причин. Вот несколько шагов для диагностики и решения проблемы:

    1. **Проверьте пути к статическим файлам:**
    - Убедитесь, что пути к статическим файлам, таким как CSS, JavaScript и изображения, указаны правильно в вашем HTML-коде. Проверьте, что файлы действительно существуют по указанным путям.

    2. **Проверьте настройки Django для статических файлов:**
    - Убедитесь, что в файле настроек Django (обычно `settings.py`) указаны правильные пути к статическим файлам. Настройки `STATIC_URL` и `STATIC_ROOT` должны быть сконфигурированы правильно.

    3. **Запустите сборку статических файлов:**
    - Если вы внесли изменения в статические файлы (например, CSS), убедитесь, что вы запустили сборку статических файлов с помощью команды `python manage.py collectstatic`. Это соберет все статические файлы в директорию, указанную в `STATIC_ROOT`.

    4. **Проверьте права доступа:**
    - Убедитесь, что файлы стилей имеют правильные разрешения доступа для чтения. Они должны быть доступны серверу для чтения.

    5. **Проверьте браузерный кэш:**
    - Браузер может кэшировать статические файлы. Попробуйте очистить кэш браузера и перезагрузить страницу.

    6. **Проверьте ошибки в консоли браузера:**
    - Откройте консоль разработчика вашего браузера (обычно F12 или Ctrl+Shift+I) и посмотрите, есть ли какие-либо ошибки во вкладке "Console". Ошибки JavaScript или CSS могут помочь выявить проблему.

    7. **Используйте `{% load static %}`:**
    - Убедитесь, что вы используете тег `{% load static %}` в начале HTML-шаблона для загрузки статических файлов.

    8. **Проверьте CSS-селекторы:**
    - Убедитесь, что CSS-селекторы, которые вы используете для применения стилей, верны и соответствуют элементам на вашей странице.

    9. **Проверьте синтаксис CSS:**
    - Проверьте синтаксис ваших CSS файлов на наличие ошибок. Неправильные правила CSS могут привести к игнорированию стилей.

    10. **Используйте инкогнито-режим браузера:**
    - Попробуйте открыть ваш сайт в режиме инкогнито или в другом браузере, чтобы убедиться, что проблема не связана с кэшем или настройками вашего основного браузера.

    Если после выполнения этих шагов проблема остается нерешенной, уточните, какие именно изменения в стилях не применяются, и предоставьте более подробную информацию, чтобы можно было точнее определить причину проблемы.
    Ответ написан
    Комментировать
  • Python asyncio list does not processing asyncrounouslly because of what?

    solotony
    @solotony
    покоряю пик Балмера
    думаю что async for поможет

    async for event in client.iter_admin_log(chan):
          print(event.user_id)
          await asyncio.sleep(5)
          print(f"{event.user_id} awaited")


    https://superfastpython.com/asyncio-async-for/
    Ответ написан
  • Как реализовать запросы на подключения в комнату?

    solotony
    @solotony
    покоряю пик Балмера
    а каким образом кроме вебсокетов можно еще уведомить админа что к нему кто-то ломится ?

    я вижу примерно такую последовательность

    - новый пользователь коннектится к чату в "режиме запроса"
    - админу летит команда по вебсокету "пришел новый юзер"
    - он отвечает "принять" "отклонить"
    - нового юзера уведомляем и либо переводим в "полноценный режим" либо выкидываем
    Ответ написан
    Комментировать
  • В чем заключается ошибка в коде python?

    solotony
    @solotony
    покоряю пик Балмера
    Проблема в вашем коде заключается в неправильном понимании того, как Python обрабатывает условия с использованием оператора or и сравнения объектов.

    Вот строка кода, которая вызывает проблему:

    python

    if self.s1 == color1 or color2:

    В этой строке вы предполагаете, что условие проверяет, равна ли переменная self.s1 цвету color1 или цвету color2. Однако это не совсем верно.

    Вместо этого, вы сравниваете self.s1 с color1, а затем проверяете, является ли color2 истинным (True) или ложным (False). Если color2 не равно None, то это условие всегда будет выполняться, потому что любое непустое значение в Python считается истинным.

    Чтобы исправить это, вы должны явно сравнивать self.s1 с color1 и self.s2 с color2. Вот исправленный фрагмент кода:

    python

    if self.s1 == color1 or self.s1 == color2:
        print("s1")
        return self.s1


    Вы должны применить аналогичные исправления ко всем условиям, где вы используете оператор or для сравнения переменных.
    Ответ написан
    2 комментария
  • Как автоматически делать окно браузера активным?

    solotony
    @solotony Автор вопроса
    покоряю пик Балмера
    сам нашел ответ - можно

    const current = await chrome.windows.getCurrent();
    chrome.windows.update(current.id, { focused: true })
    Ответ написан
    Комментировать
  • Связанные выпадающие списки Django?

    solotony
    @solotony
    покоряю пик Балмера
    стандартными средствами это хорошо не сделать

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

    ну а если хотите хорший вариант - это писать индивидуальную страницу
    Ответ написан
    Комментировать
  • Есть ли веская причина не использовать редирект при помощи js в Laravel?

    solotony
    @solotony
    покоряю пик Балмера
    архитектура у системы есть ? втом смысле что бы описать зоны ответственности кто где и за что отвечает. Судя по вопросу нет и это плохо. Надо написать, утвердить и дальше всем пользоваться.

    А по сути вопроса - отправить запрос, получить ответ, посмотреть на него а потом решить куда и как дальше идти - нормальная логика для фронта.
    Ответ написан
    Комментировать
  • Почему текст не форматируется, выходит за размер контейнера?

    solotony
    @solotony
    покоряю пик Балмера
    потому что так прописано у вас в стилях

    добавьте style="white-space: pre-wrap" в тег pre (или в блок style или в css файл)
    Ответ написан
    1 комментарий
  • С++ На всех ли платформах одинаковая точность операций с float?

    solotony
    @solotony
    покоряю пик Балмера
    В общем ответ - нет. Нет никакой гарантии что операции с плавающей точкой посчитаются одинаково на разных архитектурах. Я на практике с этим сталкивался при решении дифуров, когда из-за проблем с точностью мы получали качествнно разный результат на разных платформах
    Ответ написан
    Комментировать
  • MySQL + PHP :: Хранение паролей клиентов в базе данных с целью их извлечения, как защить?

    solotony
    @solotony
    покоряю пик Балмера
    я так делал

    при вводе пароля вычисляется его некий хеш который в дальнейшем является ключом и хранится на клиентской машине, использовал DES

    все данные подлежащие шифрованию сразу шифровал на клиентской машине и на сервере хранил только шифрованные данные.

    p.s. вопрос надежности надо рассматривать исходя из потенциальных атак и общих требовний.
    Ответ написан
    Комментировать
  • Laravel Relationships, как получить запись связывания?

    solotony
    @solotony
    покоряю пик Балмера
    судя по всему вам надо использовать связь многие ко многим belongsToMany

    https://laravel.com/docs/10.x/eloquent-relationshi...

    ну и общие ошибки:
    названия моделей в единственном числе
    названия методов c маленькой буквы
    Ответ написан
    Комментировать