• Как сортировать по icontains?

    @deliro
    У постгреса есть поиск по триграммам, у триграмм есть similarity (по которой можно сортировать и фильтровать). В джанге (кажется, начиная с 1.10) есть привязки для этого всего — https://docs.djangoproject.com/en/2.0/ref/contrib/...

    Нужно в БД установить pg_trgm; (которое тоже есть в джанге, но для этого юзер БД джанги должен быть суперюзером)
    Можно сделать GiN индекс по триграмме, что ускорит выполнение __icontains.

    Пример поиска можно посмотреть здесь: https://ukar.su/
    Делал ребятам поиск как раз на триграммах. Но там он чуть умнее — умеет понимать ошибочную раскладку. Можешь поискать, например, "Thermaflex". Вводишь Thermaflix, thermoflex, еукьщадулы, термафлекс, термосфрекс, nthvjaktrc, флекстермо — всё равно находит
    Ответ написан
    7 комментариев
  • Как расположить два блока рядом?

    @DivineDraft
    левый left
    правый right
    .left {float:left;width:calc(100% - 300px);}
    .right {float:right;width:280px;}

    +20px получается отступ.
    Ответ написан
    1 комментарий
  • Как корректно сделать две одинаковые формы на странице Django?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Поможет параметр prefix, но форму инстанцировать придётся дважды:
    callback_form_header = CallbackForm(prefix="header")
    callback_form_footer = CallbackForm(prefix="footer")
    Ответ написан
    Комментировать
  • Как скрыть некоторые поля для отдельного пользователя в Django?

    syschel
    @syschel
    freelance/python/django/backend
    Посмотри как джанго генерирует создание пользователя. Там функция на добавление пользователей, как раз и выводит только определённые поля.

    class UserAdmin(admin.ModelAdmin):
        fieldsets = (
            (None, {'fields': ('username', 'password')}),
            (_('Personal info'), {'fields': ('first_name', 'last_name', 'email')}),
            (_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser',
                                           'groups', 'user_permissions')}),
            (_('Important dates'), {'fields': ('last_login', 'date_joined')}),
        )
    
        add_fieldsets = (
            (None, {
                'classes': ('wide',),
                'fields': ('username', 'password1', 'password2'),
            }),
        )
        def get_fieldsets(self, request, obj=None):
            if not obj:
                return self.add_fieldsets
            return super(UserAdmin, self).get_fieldsets(request, obj)

    Если объект уже создан, то выводит стандартный набор из кортежа fieldsets.
    В общем, переопределяй get_fieldsets()
    Ответ написан
    1 комментарий
  • Можно ли в Bitbucket задать отдельный пароль для пользователя, которому расшарен мой репозиторий?

    stanislav-belichenko
    @stanislav-belichenko
    Backend PHP Developer
    Вы изначально пошли неверным путем. Вам необходимо дать доступ к приватному репозиторию, это можно сделать двумя способами.

    1. Создать команду (team):
      2848cd81588e47e3ac3786d242611bca.png
      после чего сделать этот репозиторий репозиторием этой команды. Ну и соответственно ваши коллеги должны будут зарегистрироваться на Bitbucket, а вы должны будете пригласить их в команду.

    2. Просто дать доступ к личному репозиторию, через специальный функционал:c240dab9209549ffbb74b0607c1e1c11.png


    После этого можете спокойно поменять свой пароль. Вам придется немного повозиться с настройками, плюс, например, вы можете сделать так, чтобы только вы могли одобрить pull в ваш репозиторий (так называемый pull request), но это все скорее плюсы, чем минусы.

    Это что касается организации работы с самим Bitbucket. Далее, что касается "заливать изменения на действующий сервер". Если я вас верно понял, то таким образом вы реализовали деплой вашего проекта из вашего репозитория на сервер, где работает ваше приложение.

    Это не совсем верный путь, а точнее - совершенно неверный, так как подобное можно проворачивать только на тестовых средах, где вы можете что-то подправить, подождать, пока случится собственно pull, ну и так далее. Попробуйте использовать что-либо вроде Capistrano, ну или что угодно еще из подобных утилит. Это решит вопрос и с хранением паролей, и со всем остальным. В крайнем случае, сделайте авторизацию через ключ, а не через пароль. В этом случае, один раз добавив его, вы навсегда забудете о вводе пароля от аккаунта при загрузке вашего приложения. Подробнее об этом можно узнать тут, ну и вообще погуглив про bitbucket ssh key.
    Ответ написан
    5 комментариев
  • Почему так странно поступает Git?

    @aol-nnov
    autocrlf. инфа 99.98%

    ты еще диффом посмотри на изменения и удивись :)
    Ответ написан
    Комментировать
  • Почему так странно поступает Git?

    v_decadence
    @v_decadence
    Похоже на поврежденный .git/index, может поможет
    git reset --hard
    !!! Это удалит все незакомиченные изменения !!!
    Ответ написан
    2 комментария
  • Как сверстать такие блоки?

    AlexanderShustik
    @AlexanderShustik
    Мне кажется как-то так:
    https://jsfiddle.net/alexandershustik/8wy4qkbo/
    Ответ написан
    Комментировать
  • UnderscoreJS. Возможно ли SEO?

    @mik222
    Выбор хороший. Не нужно тратиться на хостинг, и scalability очень высокая(учитывая, что количество продуктов не вырастет до десятков тысяч)
    ============
    Ну, во первых Google поддерживает JS. Не целиком, но поддерживает.
    https://developers.google.com/webmasters/ajax-craw...
    ============
    Во вторых, вы можете сделать приложение изоморфным. (Рендерить статически страницу в том же headless браузере и отдавать "кеш" клиенту если он робот)
    Например:
    mono.software/2016/02/18/SEO-for-javascript-applic...
    Ответ написан
    Комментировать
  • Как отправить содержимое корзины?

    @webdevkin15
    Думаю, здесь то, что Вам нужно :-)
    webdevkin.ru/posts/backend/internet-magazin-realiz...
    Ответ написан
    Комментировать
  • Зачем нужен Gulp?

    @artinnok
    бекенд-программист
    CSS и JS:
    К примеру, у вас имеется большое количество (Х штук) css или js файлов, которое вы подключаете на своих страницах посредством тэгов <link> и <src>.
    При загрузке страницы, браузер клиента будет отправлять X запросов к вашему серверу, а ваш сервер должен будет ответить на X запросов.
    Это:
    1. Тормозит загрузку страницы - будете ждать ответа от сервера
    2. Загружает ваш сервер

    С помощью сборщиков фронтэнда вы можете "склеить" все файлы в один - main.css и main.js, которые будут отдаваться 2 запросами с сервера. Также, вы сможете минифицировать CSS и JS. Под минификацией подразумевается уменьшение размеров файла на диске. Естественно, более легкий файлы будет быстрее прогружаться + минимальное количество запросов к серверу.

    IMG:
    К примеру, у вас имеется Х изображений размером 700 Кбайт. Клиенту надо будет загрузить 700 * X Кбайт. Если вы пропустите свои изображения через Gulp, то вы получите изображения с меньшим размером на диске и такого же качества, т.е. клиенту придется прогрузить примерно (500-600) * X Кбайт.
    Ответ написан
    1 комментарий
  • Зачем нужен Gulp?

    @sergeystepanov1988
    Если по простому, то Gulp это некий интерфейс для подключения и настройки различных плагинов, которые выполняют различные операции с файлами:
    • преобразование файлов (сжатие картинок, минификация js и css, объединение в один файл)
    • слежение за изменениями файлов и реакция на эти изменения
    • автоматизированное тестирование
    • автоматическое генерирование документации
    • компиляция с одного языка на другой (LESS -> CSS, TypeScript -> JavaScript, ES6 -> ES5)
    Ответ написан
    8 комментариев
  • Зачем нужен Gulp?

    @Rabinzon
    скрин
    Все что красным, соберется в то что синим.
    Например, когда проект разбивается на мелкие 'компоненты'. И вы используете предпроцессоры, например jade, sass все это нужно как то компилить и собирать в html и css. Gulp с этим делом справляется на УРА.
    Ответ написан
    Комментировать