• Как восстановить данные поcле форматирования NTFS->EXT4?

    axifive
    @axifive
    Software Engineer
    Testdisk прекрасно с этим справляется. Он опенсурсный. Умеет восстанавливать предыдущие талицы разделов без потерь!

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

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

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    @register.filter()
    def distinct(items):
        return set(items)

    {% for order_product in order.products.all|distinct %}
        ...
    {% endfor %}
    Ответ написан
    4 комментария
  • Как осилить словари?

    adugin
    @adugin Куратор тега Python
    Вариант #1 - реализовать через collections.defaultdict:
    from collections import defaultdict
    
    keys = ['1', '1', '1', '2', '2', '3']
    vals = ['q', 'w', 'e', 'r', 't', 'y']
    
    d = defaultdict(list)
    for key, value in zip(keys, vals):
        d[key].append(value)

    Вариант #2 - без defaultdict, но эквивалентен его поведению:
    d = dict()
    for key, value in zip(a, b):
        d.setdefault(key, []).append(value)

    Вариант #3 - использовать MultiDict.
    Ответ написан
    Комментировать
  • Django. Права на файл после записи?

    @frilix Автор вопроса
    Иногда "творю"
    Погуглив узнал, что у django есть параметр отвечающий за права.

    Решение:

    FILE_UPLOAD_PERMISSIONS = 0o644


    If this isn’t given or is None, you’ll get operating-system dependent behavior. On most platforms, temporary files will have a mode of 0o600, and files saved from memory will be saved using the system’s standard umask.


    Что означает, что это зависит от платформы и нужно принудительно задавать эту маску, чтоб не было взято по умолчанию
    Ответ написан
    Комментировать
  • Арифметические операции в django templates?

    @vanillathunder
    Все эти операции не нужно делать в template.
    Ответ написан
    Комментировать
  • “CSRF token missing or incorrect” в AJAX / Django?

    @Nekr0z
    Чтобы "в AJAX передать CSRF", нужно выполнить AJAX-запрос с параметром:
    data: {csrfmiddlewaretoken: getCookie('csrftoken')}

    Функция getCookie() описана на той странице документации, что ты нашёл.
    Ответ написан
    3 комментария
  • Как в одном проекте Django оптимально реализовать сайты на поддоменах в разных городах?

    neatsoft
    @neatsoft
    Life is too short for bad software
    Отдельные базы данных и DATABASE_ROUTERS это жуткая головная боль - поломанные миграции, неочевидные глюки, существенное замедление разработки, и т.д. Не надо так делать. Есть один подобный проект на сопровождении, поэтому знаю о чем говорю.

    При правильно расставленных индексах количество строк в таблице слабо влияет на производительность базы данных (если лимитировать выдачу и задумываться о том какие именно запросы формирует ORM), поэтому о размере бд особо переживать не стоит. Лучше озадачиться грамотным кэшированием.
    Чтобы исключить взаимные блокировки при создании новых объектов советую присмотреться к uuid в качестве первичных ключей:
    class MyModel(models.Model):
        uuid = models.UUIDField(
            verbose_name=_('Uuid'),
            primary_key=True,
            default=uuid.uuid4,
            editable=False,
        )

    Файл settings.py должен быть только один, особенные настройки для каждого из сайтов нужно хранить в бд. Выбор сайта на основании имени домена можно производить с помощью middleware. Некоторые модели будут общими для всех сайтов, некоторые нужно будет фильтровать.
    Если предполагается использование стандартной админки, то для пользователей без superuser статуса нужно будет фильтровать queryset и автоматически добавлять site_id при создании новых объектов.
    Ответ написан
    2 комментария
  • Как в одном проекте Django оптимально реализовать сайты на поддоменах в разных городах?

    @marazmiki
    Укротитель питонов
    Плюсы первого способа — независимость баз друг от друга, как ни парадоксально. Это значит, что если одна из них ляжет, то остальные могут работать. Или, например, если база для Москвы сильно разрослась, то её можно легко перекинуть на другой сервер. Но в этом случае говорить об одной инстанции Джанго с динамическим переключением роутеров – не лучшая идея. Минусы — геморрой с поддержкой как базы, так и серверов приложений.

    Второй способ мне кажется более приемлемым. Основное достоинство в простоте. Положа руку на сердце, мало какой проект выстреливает так, чтобы была реальная необходимость делить его на базы. Вы скорее в теоретический потолок джанги упрётесь. А значительный объём, на который увеличится БД... не надо заниматься преждевременной оптимизацией. Если (ЕСЛИ!) проект выстрелит, то и опыта наберётесь, и мысли дельные появятся, специфические для конкретно этого проекта.

    И в данном случае я бы, пожалуй, сделал именно один экземпляр сервера приложений, с одним settings. Чтобы никаких настроек не переключать. Завёл бы модель Domain и миддльварьку, которая брала бы домен из текущего запроса, искала его в этой модели и помещала бы в request (по аналогии с user).

    Все настройки можно хранить в БД, используя в качестве признака как раз вышеописанный Domain. Это хорошо ещё и тем, что после изменения настроек не нужно будет перезапускать сервер.

    А sites framework – абсолютно бесполезная фигня, его использование оправдано только в одном случае: если используются очень нужные, но уже старые и давно не обновляющиеся батарейки, которые его требовали. Если у вас появилась уникальная возможность начать новый проект без легаси, то очень советую ей воспользоваться. Это непередаваемое ощущение, когда код чистый :)
    Ответ написан
    4 комментария
  • Где найти практикум по Python?

    @1bd_1l_Bari
    Если нужна хорошая практика, то советую первый курс, второй курс, и тренажер (задачник).
    Вот когда ты пройдешь это всё и прорешаешь САМ от и до (задачки очень сложные там порой, мозги и скилл качают что надо!), то можешь начинать читать Лутца "Изучаем Python". Параллельно можешь решать задачи на Chekio как выше написал человек, и еще решай задачи отсудова. Обязательно свои проекты придумывай и реализовывай. В этих ресурсах, которые я скинул практики более, чем достаточно. После Лутца можешь переходить на Рамальо Лучано.
    Ответ написан
    2 комментария
  • Cервис онлайн для рисования блок-схем?

    Absent
    @Absent
    draw.io — бесплатный и интегрируется с Google Drive (создает гугл-доки, которые потом открываются в этом сервисе)
    Ответ написан
    6 комментариев