• Возможно ли динамическое создание urlpatterns в django?

    stepank
    @stepank
    Тогда все прелести роутинга можно будет сохранить.
  • Возможно ли динамическое создание urlpatterns в django?

    stepank
    @stepank
    Если я ничего не путаю, то внутри page_dispatcher можно создать динамически свой набор url pattern'ов по списку страниц пользователя, а дальше использовать https://docs.djangoproject.com/en/dev/ref/urlresol... Опять же созданный список url pattern'ов, вероятно, есть смысл как-то кешировать.
  • Почему Django отображает все записи только после рестарта?

    stepank
    @stepank
    Можете показать минимальный кусок кода, который демонстрирует проблему?
  • Как сравнить две базы данных?

    stepank
    @stepank
    если индексы сделали, то дальше вопрос, что говорят эксплейны? и чисто так, на шару, analyze ведь сделан?
  • Python: не работает print в вебе

    stepank
    @stepank
    какой веб сервер, как деплоится приложение, как сервер запускается? мб оно в лог веб сервера выводится?
  • Ноутбук с длительным временем работы?

    stepank
    @stepank
    хм, украинский маркет включил ASUS U45JC, но не включил Fujitsu LIFEBOOK S761 vPro. да, этот асус можно рассмотреть
  • Ноутбук с длительным временем работы?

    stepank
    @stepank
    яндекс.маркет — последнее место, где стоит искать ноуты по параметру «время автономной работы». там тупо указаны данные, которые приводит производитель, а производители никогда не отличались честностью в этом вопросе. 15 минут хождения по гуглу показывают, что из шести указанных моделей только один ноут (самсунг qx412) действительно способен продержаться хоть сколько нибудь близко к 10часовой отметке, а именно около восьми с половиной часов в режиме серфинга по интернету. плюс к этому: хреновые корпуса (кроме разве что тошибы), большой вес (кроме дорогого фуджика) и цены, которые себя никак не оправдываютяндекс.маркет — последнее место, где стоит искать ноуты по параметру «время автономной работы». там тупо указаны данные, которые приводит производитель, а производители никогда не отличались честностью в этом вопросе. 15 минут хождения по гуглу показывают, что из шести указанных моделей только один ноут (самсунг qx412) действительно способен продержаться хоть сколько нибудь близко к 10часовой отметке, а именно около восьми с половиной часов в режиме серфинга по интернету. плюс к этому: хреновые корпуса (кроме разве что тошибы), большой вес (кроме дорогого фуджика) и цены, которые себя никак не оправдывают
  • Environment for Python development

    stepank
    @stepank
    поддержу. я пробовал эклипс, нетбинс, vim, emacs, gedit, kate, и еще кучу других редакторов, которые уже и не вспомню, но остановился на IntelliJ IDEA с плагином для питона. IDEA и PyCharm построены на одной и той же платформе, просто мне приходится работать не только с питоном, но иногда с руби, пхп и жабой, поэтому простой PyCharm мне не подошел
  • Вопросы на собеседовании программисту Python

    stepank
    @stepank
    @DeNnEr понимаю, что вопрос очень старый, но не понял про threading и multiprocessing. GIL, конечно, работает в обоих случаях, но в случае с multiprocessing создаются не потоки, а процессы, значит, если я все правильно понимаю, будет по гилу на процесс, так что он не будет мешаться на CPU bound задачах. правильно?
  • Магистратура, аспирантура, армия. На какой путь встать?

    stepank
    @stepank
    Да, еще один профит такого варианта — я думаю вы и сами можете представить разницу в зарплатах в, скажем, Москве-Питере и в центральном черноземье. :)
  • Магистратура, аспирантура, армия. На какой путь встать?

    stepank
    @stepank
    Да, это правда, деньги не малые и их, конечно, жалко. С другой стороны закосить по здоровью выйдет в районе 100-120к, полагаю, так что разница не такая уж и большая, плюс вариант легальный. Кроме того, 50к в год — это цены в Москве, в ближайших регионах цены могут быть в два-три раза меньше (я серьезно, можете сами узнать расценки), а это уже другой разговор. :) Да, во всех этих рассуждениях я исхожу из предложения, что вам не хочется тратить время ни на аспирантуру, ни на армию. Впрочем, решать вам, конечно. :)
  • Магистратура, аспирантура, армия. На какой путь встать?

    stepank
    @stepank
    да, наверное именно потому, что люди в армии становятся заметно мудрее, мало кто захочет ехать в поезде полном дембелей, а день десантника считается самым безопасным днем для прогулок на свежем воздухе.
  • ORM и изменения объекта в разных местах кода?

    stepank
    @stepank Автор вопроса
    а да, F-объект в некоторых случаях действительно помогает, хотя и немного загромождает код
  • ORM и изменения объекта в разных местах кода?

    stepank
    @stepank Автор вопроса
    пересчитывать account на каждый чих — не вариант, это весьма ресурсоемкая операция, поэтому, видимо, все-таки эта сущность нужна

    что касается точки обновления, она и так одна, есть у Account такой метод — update_balance. но как раз из вопроса должно быть понятно, что одновременно может существовать несколько питонячих объектов для одной записи БД. и вызов этого метода у разных объектов как раз и приведет к проблеме. а метод может вызываться в разных местах, это как раз нормально

    про select for update — смотрите предыдущий ответ и мой комментарий к нему

    вообще, наиболее грамотно принцип решения этой проблемы описан в обсуждении на stackoverflow, которое я привел в конце вопроса, он же упомянут ultimate_darkness на несколько ответов выше
  • ORM и изменения объекта в разных местах кода?

    stepank
    @stepank Автор вопроса
    мб, я что-то не понимаю, но не похоже, что select for update может помочь, вот пример:

    start transaction;
    select * from transaction order by id limit 1 for update;
    select * from transaction order by id limit 1 for update;
    rollback;

    очевидно, если между двумя запросами select новые данные в таблицу transacton не добавлялись, в выборку в обоих запросах попадет одна и та же запись. но, т.к. все это выполняется в пределах одной транзакции (а именно такая ситуация была в приложении), то никаких ошибок и блокировок не происходит. попытка сделать выборку этой записи из другой сессии, понятное дело, натыкается на блокировку и ждет, пока транзакция не будет завершена, но это не мой случай. хочется еще раз подчеркнуть, все операции, которые я описывал в изначальном вопросе происходили в рамках одной сессии и одной транзакции, поэтому select for update, видимо, не решение. по этим же причинам уровень изоляции SERIALIZABLE не поможет. кроме того, если я правильно понимаю, этот уровень сделает базу ощутимо менее проворной, что тоже не желательно

    что касается отдельного поля для версии, это можно сделать, но его придется проверять явно, я правильно понимаю? если да, то это решение в общем-то не лучше того, чтобы просто вытаскивать запись еще раз перед вторым изменением
  • ORM и изменения объекта в разных местах кода?

    stepank
    @stepank Автор вопроса
    спасибо, как таковой проблемы сейчас уже нет. решил весьма похожим способом :)
    но такие ситуации вполне могут появляться снова, вопрос был по большому счету именно о том, как избежать подобных проблем вообще. остальное — просто для примера.
    общее же решение описано неплохо в ссылке на stackoverflow, которую я дописал в конце вопроса, о нем еще упоминает ultimate_darkness на пару ответов ниже
  • ORM и изменения объекта в разных местах кода?

    stepank
    @stepank Автор вопроса
    если честно, я не понял Ваше предложение. одна и та же сущность вполне может меняться в разных местах системы — это нормально
  • ORM и изменения объекта в разных местах кода?

    stepank
    @stepank Автор вопроса
    да, спасибо. я в конце вопроса уже после его публикации добавил ссылку на похожий вопрос на stackoverflow. там как раз указывается, что Django ORM не предоаставляет функциональность identity map. если бы предоставлял, то вместе с транзакциями это уже было бы полностью рабочее решение