• Почему не удаляются все элементы списка?

    mututunus
    @mututunus
    Backend developer (Python, Golang)
    def checkio(data):
        return [i for i in data if data.count(i)>1]
    Ответ написан
    3 комментария
  • Какие книги есть для не начинающего питониста?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    в Питоне же специализации есть какие-никакие
    проще всего - найдите ресурс, откуда скачиваете эти по списку и пройдитесь по содержанию интересно-неитересно

    "для всех" можно порекомендовать
    978-5-97060-384-0-new_270_369__100.jpg
    см. на английском содержание, выходит 15 января
    и, возможно,
    IntrotoProgrammingInPython.jpg ( не могу найти развернутое содержание, но тоже выходит летом на русском)

    полезно тематически:
    scraping
    multiprocessing
    и паттерны
    раз, два
    ну и по сетям, думаю, тоже всем нужно, вот неплохая
    51A3TTw0qUL._SX404_BO1,204,203,200_.jpg

    в тех же темах, где Питон применяют типа NumPy, Scikit-Learning или NTLK - книг еще больше, но там прокачка будет посложнее

    по Django - Flask книг тоже полно, по Pyramid поменьше, но тоже есть
    Ответ написан
    Комментировать
  • Как сделать красивый вывод словарей в консоль Python?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    pprint
    Ответ написан
    Комментировать
  • Как анализировать вакансии front/-backend разработчиков?

    DevMan
    @DevMan
    не стоит удивляться: в таких вакансиях расставляют требования точно так же как и вы теги к своему вопросу.
    Ответ написан
    24 комментария
  • Почему не все серверы пишутся на Node js?

    mannaro
    @mannaro
    Умею профессионально гуглить
    Есть Ассемблер.
    Но если он есть, на нем все возможно, и в добавок он соображает быстрее того же C++, то почему еще существуют другие решения в мире софтовой разработки?

    Традиции, привычки и необходимость поддерживать существующие проекты не в счет. Мне интересно, почему новые проекты пишутся не всегда на ассемблере?
    Ответ написан
    14 комментариев
  • Как в django вместо удаления модели помечать ее?

    mututunus
    @mututunus
    Backend developer (Python, Golang)
    class PhotoAdmin(admin.ModelAdmin):
        def get_queryset(self, request):
            queryset = super(PhotoAdmin, self).get_queryset(request)
       
            return queryset.filter(delete=0)
    Ответ написан
    Комментировать
  • Как добавить кнопку "Копировать в буфер" в django admin?

    А зачем эта кнопка нужна, если можно ctrl+a и ctrl+c? Ведь оно костыль. Напишите лучше об этом, например, в help_text, если надо в паре мест, или даже в шаблон жирными буквами.

    Но если все-таки есть желание... Самый простой способ - это поискать тут. Если там ничего нет, то остается "сложный".

    Я так понял, что речь идет именно про страницу редактирования. Нужно сделать отдельное приложение с скриптиком на JS и/или кастомным шаблоном, а также сделать класс/миксин для админки, чтобы удобно делать что-то в стиле:

    class YourModelAdmin(ClipboardMixin, admin.ModelAdmin):
        clipboard_fields = ('clipboardable_field',)

    Передать в шаблон нужные поля можно по-разному:
    • Передать в контекст имена нужных полей (см. пример в доках, который показывает, как в контекст что-нибудь передать).
    • Закастомить виджет поля формы, добавив туда определенный класс, если нужно.

    Второй вариант вижу правильным, его и будем реализовывать.

    class ClipboardMixin(object):
        #change_form_template = 'admin/clipboard_change_form.html'
        clipboard_class_name = 'your-clipboard-class'
        clipboard_fields = ()
    
        def get_form(self, request, obj=None, **kwargs):
            form = super(ClipboardModelAdmin, self).get_form(request, obj=None, **kwargs)
            for i in self.clipboard_fields:
                if i in form.base_fields:
                    if 'class' in form.base_fields[i].widget.attrs:
                        form.base_fields[i].widget.attrs['class'] += ' '+self.clipboard_class_name
                    else:
                        form.base_fields[i].widget.attrs['class'] = self.clipboard_class_name
            return form
    
        class Media:
            js = ('admin/clipboard.js',)

    Ну а дальше дело за скриптом. С буфером обмена все довольно костыльно, некрасиво, но сделать можно. Скрипт надо сделать универсально: если у поля есть определенный класс, то стоит добавить кнопочку "в буфер". Как вы это будете делать - не важно, я бы бейджик какой-нибудь навесил с абсолютным позиционированием, но можно и шаблон поправить.
    Ответ написан
    Комментировать
  • В чем подвох условия?

    BuriK666
    @BuriK666
    Компьютерный псих
    Python 2.7.10 (default, May 28 2015, 21:40:30) 
    [GCC 4.9.2] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 1 % 2
    1
    Ответ написан
    Комментировать
  • Есть ли книга по Python НЕ для новичков?

    abs0lut
    @abs0lut
    Может, что то из этого подойдет:
    раз
    два
    три
    четыре
    пять
    Ответ написан
    Комментировать
  • Как в Django CBV реализовать условие if/else?

    @marazmiki
    Укротитель питонов
    Наследование, конечно, позволит избавиться от дублирования кода, но есть два момента: во-первых, Вы меняете функциональное назначение get_object() и заставляете его что-то записывать, что само по себе некрасиво с точки зрения программиста :) если уж идти этим изначально неверным путём (ниже объясню почему неверным), то, думаю, красивее было бы переопределить dispatch().

    Во-вторых и главных, делать сохраняющие операции на HTTP-методы GET, HEAD и OPTIONS не рекомендуется никому. Хотя бы из тех соображений, что через несколько секунд после того, как Вы впервые их запросите, налетят всякие гуглоботы и накрутят счётчики. И хорошо ещё, если отказ в обслуживании не вызовут.

    Считается хорошим тоном и признаком здравого смысла использовать для сохраняющих вьюшек метод POST. Или, что ещё лучше, использовать RESTful-подход с POST, PUT и DELETE для создания, изменения и удаления соответственно.

    Конкретно в Вашем случае, мне кажется, для вьюхи инкременатции счётчика лучше всего использовать FormView. Или UpdateView, там уже реализован метод get_object().
    Ответ написан
    3 комментария
  • Есть ли хорошие видеоуроки по Django на русском?

    @Mintormo
    Ответ написан
    Комментировать
  • Как на django создавать интернет магазин?

    @asd111
    Ответ написан
    Комментировать
  • Как в армии с программированием?

    Denormalization
    @Denormalization
    В армии пригодится умение бегать 20км, и спать с открытыми глазами.
    Ответ написан
    Комментировать
  • Как сделать чат на websocket?

    Scorpi
    @Scorpi
    Готовый гайд: socket.io/get-started/chat
    Ответ написан
    Комментировать
  • Какие знания нужны для Python Junior-а?

    alxpy
    @alxpy
    Мне когда-то на подобный вопрос дали развернутый ответ (еще раз спасибо этому человеку). Я не смог найти ссылку на тот форум, но сам ответ у меня был сохранен:
    Вот список знаний, которыми должен обладать потенциальный Junior Python developer:

    Уметь самообучаться, находить нужную информацию.

    Иметь общие представления о том, что такое ОС и зачем она появилась.
    Понимать что такое процесс и как он “живёт” в ОС.
    Понимать что такое поток.
    Понимать что такое сокеты и зачем они нужны.
    Иметь представление о том, как устроен стек протоколов TCP/IP.

    Понимать что такое Linux.
    Уметь работать в sh.
    Понимать что такое виртуализация и знать какие бывают типы.
    Уметь настраивать виртуальные машины через vagrant или подобные инструменты.
    Уметь работать с GIT(создавать ветки, разрешать конфликты, etc)

    Понимать что такое ООП, на чём он основан и почему им удобно пользоваться.
    Понимать что такое императивный и декларативный стиль.
    Понимать что такое MVC
    Понимать что такое декоратор(стандартный вопрос на собеседовании) и зачем он нужен.
    Понимать что такое замыкание.
    Понимать что такое интроскпекция.
    Понимать асинхронную концепцию программирования.

    Уметь работать с БД(хотя бы CRUD, join)
    Уметь работать с nginx(хотя бы проксирование настроить)

    (можно просто написать - “прочитать Лутца”, но выделю пару вопросов)
    Знать чем отличаются new style классы от old style.
    Знать чем отличаются Python2 от Python3
    Знать чем отличается str от unicode и почему в программе нужно работать с unicode.
    Понимать алгоритм импорта модулей в Python.
    Понимать что такое генераторы и итераторы.
    Понимать что такое дескрипторы.
    Понимать что такое GIL и зачем он нужен.
    Понимать что такое WSGI и зачем он появился.

    + Уметь писать тесты, понимать зачем это нужно.
    + Практические и теоритические основы по framework.

    + выполнить норматив по ГТО
    + не пить и не курить.

    Так же можешь потренироваться по заданиям Юры Юревича.

    Заданиям Юры Юревича - тыц.
    Ответ написан
    4 комментария
  • Какие существуют способы защиты стилей CSS?

    opium
    @opium
    Просто люблю качественно работать
    мне кажется мания величия затмила ваш мозг глупейшими проблемами, вместо того чтобы код красиво оформить и выкладывать на гитхаб и делиться им, вы решили его зачем то прятать, просто задумайтесь, что хорошего вы сделали в жизни и почему не выкладываете его на гитхаб?
    Ответ написан
    11 комментариев
  • Какие теги кошернее: em или i, strong или b?

    apangin
    @apangin
    В W3C спецификации теги EM и STRONG вынесены в раздел Структурированный текст -> Элементы фраз.
        EM: Indicates emphasis.
        STRONG: Indicates stronger emphasis.
    Внешний вид, как будут отображаться элементы фраз, определяется браузером. Эти теги могут учитываться, например, Text-to-Speech движками для изменения интонации или громкости голоса.

    В то же время B и I относятся к разделу Форматирование -> Шрифты и дают явное указание браузеру, каким шрифтом отрисовывать фрагмент.
        I: Renders as italic text style.
        B: Renders as bold text style.
    Ответ написан
    Комментировать