• Как узнать что за объект на сайте под курсором на Python?

    syschel
    @syschel
    freelance/python/django/backend
    JavaScript. Ибо питон серверный язык, а сервер не знает, что происходит в браузере. Тебе нужно использовать именно то что выполняется в реалтайме на стороне пользователя, то есть в браузере.
    Ответ написан
  • Стоит ли создавать отдельные модели под отдельные категории товаров в Django?

    syschel
    @syschel
    freelance/python/django/backend
    Вы недавно в разработке. Ибо задача простая. Делайте сразу же масштабируемым магазин. Ибо завтра у вас добавится, ещё один тип товаров и вы полезете опять в код?
    Создаётся три модели:
    1. Категория
    2. Товар
    3. ХарактеристикиТовара

    Товар имеет связь с категорией через ForeignKey и связь с характеристиками через ManyToManyField.
    В итоге вы можете получить все товары выбранной категории и все характеристики товара(ов). В характеристиках заводите два поля "название" и "значение". Ну или разносите на две модели "название" и модель "значение". Во вторую ИД товара, ИД название и CharField значения. В итоге у вас может быть бесконечное количество "типов" товаров со своими персональными характеристиками.
    Ответ написан
  • Трудно ли фрилансеру получить визу?

    syschel
    @syschel
    freelance/python/django/backend
    Знакомый недавно уезжал.
    1. Пришёл в банк.
    2. Открыл счёт.
    3. Положил 100к.
    4. Получил выписку по счёту.
    5. Снял тут же все деньги.
    6. Закрыл счёт.
    7. Открыл счёт на свою девушку.
    8. Положил те же 100к.
    9. Получил выписку.
    10. Снял все деньги.
    11. Закрыл счёт.
    Ушёл. С этими выписками получил визу на три месяца.

    Но это была Азия. В Европу так просто не проканает, там уже требуются движение по счёту за 3 месяца минимум.
    Ответ написан
  • Как реализовать привязку модели User к постам?

    syschel
    @syschel
    freelance/python/django/backend
    1. У вас бы клавиатуру отобрать за заглавные буквы в именах переменных. Обязательно к прочтению pep8!
    2. Выполните миграцию
    python manage.py makemigrations
    python manage.py migrate

    3. Откуда взялась такая модель User у вас? Есть же базовая, с тем же названием, а у вас она не переопределена по правилам. Без проблем ловить ошибки на конфликтах имён.
    4.
    «Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте» © Стив Макконнелл
    Ответ написан
  • Почему выскакивает ошибка при ajax запросе?

    syschel
    @syschel
    freelance/python/django/backend
    Что бы после клика не было перехода, нужно сделать "ретурн фолс" у функции клика. Что бы не было ошибки, нужно узнать что это за ошибка, а для этого посмотреть что отдаёт сервер и что он получает, в этом вам поможет firebug в фаерфокс или аналоги в других браузерах.
    Ответ написан
  • Как изменить внешний вид поля в админке в зависимости от содержания?

    syschel
    @syschel
    freelance/python/django/backend
    JavaScript ну или CSS если он научился отлавливать значение поля.
    А вообще, это лишнее, это админка джанги, а не админка сайта. Она создана для разработчиков, а не юзеров.
    Ответ написан
  • Где искать актуальные django приложения?

    syschel
    @syschel
    freelance/python/django/backend
    Самое первое место: www.djangopackages.com
    Тут можно смотреть подборки по "тематике".
    К примеру ваш запрос про месседжеры: https://www.djangopackages.com/grids/g/messaging/

    Второе место это PyPi.
    Ответ написан
  • Создание веб-страниц сайта на базе готовой БД. Как?

    syschel
    @syschel
    freelance/python/django/backend
    Вот здесь лежит цмс, которая вам нужна. Другого решения нету.
    Ответ написан
  • Как раскрутить клиента на поддержку?

    syschel
    @syschel
    freelance/python/django/backend
    1. Сервера у себя держать и оформлять их на себя. Любой чих через вас.
    2. Объяснить, что доработка или фикс багов своевременный, возможен только при оплате какой-то минимальной поддержки. Если есть оплата, то время отклика столько то часов (Не забудьте указать лимит и объём обращений на поддержку, выше лимита - за отдельный прайс/договор). Если же не было поддержки, то говоришь сразу, что время отклика может быть столько-то дней и дальше уже в очереди среди других заказов. Ибо время под их проблемы ты не резервировал и брал новые заказы, которыми и занимаешься.
    3. В договоре на разработку, сразу указывать поддержку.
    4. etc
    Ответ написан
  • Какие они, ваши наблюдения и опыт о количестве интересных проектов во фрилансе/удаленной работе?

    syschel
    @syschel
    freelance/python/django/backend
    Самое сложное во фрилансе, не языки и технологии.
    • Умение продавать себя в толпе конкурентов. Это самое сложное. Есть много высококлассных специалистов, сидящих на среднем окладе. Они тупо не могут себя продать даже в другую компанию, а не редко и боятся менять привычное место.
    • Умение грамотно составить или согласовать ТЗ. Так что бы проблема заказчика решалась в оговоренные сроки и бюджет. А не перерастала в вечнострой с кучей доделок и переделок с базовым бюджетом. Когда обе стороны уже ненавидят друг друга. Ибо работая в офисе разработчиком, всё это ведут менеджеры и тим лиды, а вам спускают конкретные задачи. Вам же придётся научиться понимать, что хочет клиент, не разбирающийся в программировании, говоря то или это. Научиться понимать и предлагать те решения, которые будут ему актуальны с учётом технологий и отказывать в том, что сделать не реально. Находить компромиссы, но опять же, объясняя почему так или иначе.


    Самое лучшее для фрилансера, да и любого разработчика. Это большие и долгие проекты. Когда можно постоянно заниматься одним. А не вникать каждый раз по новой, не привыкать к новому заказчику. Да, тут есть шанс отупения и застоя в развитии, но это лечится средними своими проектами или доп работой небольшой. Хотя, если проект живой и развивающейся, руководство ищет способы развития бизнеса и само заинтересованно в росте. Тогда можно и на текущем проекте развиваться, пробуя новые технологии, службы, стеки. Это будет рост как специалиста.

    А технологии, языки. Это уже второстепенно. Главное развиваться. Ибо в попсовом PHP можно делать большие проекты и быть специалистом с большой стоимостью часа или на редком python/java сидеть и быдлокодить мелочь за копейки. Главное не метаться, а развиваться и расти, беря более сложные и более длинные проекты. И брать их не с "поддержкой", а с возможностью постоянного развития. Задачи "в стол", не интересны. А вот задачи на перспективу, на развитие. Это уже интересно. Ибо "в стол" это как правило теория(придумали, сделали, забыли). А развивающиеся, это практика на реальных условиях, когда в процессе приходится много менять (менять бизнес модель, менять архитектуру из-за возросших нагрузок, менять технологии).
    Ответ написан
  • Как работает cashback?

    syschel
    @syschel
    freelance/python/django/backend
    На примере онлайн магазинов. Есть партнёрские агрегаторы, которые платят за приведённого клиента или за совершённые им покупки, какой-то процент. Скажем 10% с продажи. То же самое под акции и купоны. За каждую покупку по твоей ссылке (реферальной) или твоему купону, тебе идут проценты.

    Далее. Ты создаёшь сайт аля купонатор/групон или аналог яндекс.маркета. Перенаправляя своих посетителей на сайты рекламодателей, через партнёрский агрегатор. Они там совершают покупки, ты за это получаешь какой-то процент. Из этого процента, ты отдаёшь часть денег назад твоему посетителю. Это и есть кешбэк. В офлайне он точно такой же, за покупки по твоей банковской карте или скидочной карте, ты получаешь процент от продажи. С этих денег ты часть возвращаешь клиенту, который совершил эту покупку.
    Ответ написан
  • Что не так с моей функцией?

    syschel
    @syschel
    freelance/python/django/backend
    get_object_or_404() (source)
    Найти один объект, если не найден то показать 404
    У вас на поиске Heading, не находит его и выдаёт исключение (raise Http404), дальше не идёт выполнение кода. Так же будет ошибка если в базе найдётся больше одного объекта. Тоже выплюнет исключение в 404.
    Ответ написан
  • Что делать, если заказчик просит убрать работу из портфолио?

    syschel
    @syschel
    freelance/python/django/backend
    Если говорим про программный продукт (не важно вёрстка то или серверная часть), дизайн и так далее:

    Договорное оформление прав на программное обеспечение
    1.2. Разработка ПО по заказу
    Вторым вариантом создания ПО является поручение его разработки фрилансерам.
    В таком случае отношения сторон должны оформляться гражданско-правовым договором. При выполнении работ по созданию ПО непосредственно физическим лицом (автором) заключается договор авторского заказа (ст.1288 ГК РФ). Аналогично решается вопрос при создании ПО коллективом авторов. В таком случае на стороне исполнителя просто указываются все авторы.

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

    Соответственно, в отношениях «заказчик – автор (фрилансер)» действует презумпция сохранения прав за автором, если договором не предусмотрено иное.

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


    И ещё: Разоблачение 12 юридических заблуждений о программ...
    Заблуждение: 5 . Чтобы стать владельцем программы достаточно нанять программиста и оплатить его работу по договору.
    На самом деле: Передача прав – это самостоятельный юридический акт, который должен однозначно фиксироваться договором и документацией. Чтобы вас признали единственным владельцем прав, это должно быть прямо зафиксировано в документах.
    Совет: Включайте в договор условия:
    (1) о выплате авторского вознаграждения;
    (2) о предоставлении или отчуждении прав Заказчику;
    (3) о невозможности отказа от права на обнародование.
    Передачу прав всегда оформляйте актом или включайте такие условия в исполнительскую документацию.


    Так же, во многих веб студиях ещё и копирайты свои ставят на сданный продукт. И убрать с сайта копирайт с ссылкой на "разработано ооо Рога и Копыта", стоит денег. Ибо "в стоимость работы, была заложена составляющая рекламы создателя", а убирая, её нужно погасить (оплатить).
    Ответ написан
  • Онлайн Сторы на Django. Стоит ли переписывать?

    syschel
    @syschel
    freelance/python/django/backend
    Стоит.
    Проблема для студий на питоне обычно только в одном ключе- поиск разработчиков. Пыхарей найти проще как правило, А если город региональный, то вообще порой засада. Но если не зацикливаться на присутствии в офисе разрабов, а нормально организовать работу "удалённого офиса", то проблем не будет.
    Ответ написан
  • Фриланс для начинающего?

    syschel
    @syschel
    freelance/python/django/backend
    Советую начать с офлайн работы в своём регионе. Хотя бы годик. Пускай и в начале "за еду". Научитесь коммерческой работе, работе под руководителем. Работе с ТЗ, с изменением задач, со сроками, с взаимодействием смежников (дизайнеры, верстальщики, контенщики, менеджеры, программисты - они друг другу смежники в вебе, ваше направление не знаю). А потом уже идите во фриланс. Самое сложное в фрилансе, это себя продавать и вести общение с заказчиком. Это всё, можно отточить в офисе и на собеседованиях, потом на подработках с офлайн фрилансом. И только потом идти в интернет. Ибо запоров профиль на первом заказе на "нормальной" бирже, отрицательным отзывом заказчика, отмыться потом не сможете.
    Ответ написан
  • Почему в нынешнее время работодатели предъявляют высокие требования за маленькую ЗП?

    syschel
    @syschel
    freelance/python/django/backend
    Это старая тема, не новая, с начала нулевых идёт. Большинство работодателей не понимают, что они пишут, а тупо копируют чужие вакансии и ставят свои рейты.
    Ответ написан
  • Как сделать group_by по определённому полю в Django 1.8?

    syschel
    @syschel
    freelance/python/django/backend
    Django 1.8.4
    queryset.filter(**params).only('dates', 'type_date').select_related(*select_rel).order_by('-dates', '-create')
    queryset.values('dates').annotate(count=Count('dates')).order_by() # Сбросил сортировку


    Получаю запрос
    SELECT `dates`, COUNT(`dates`) AS `count` 
    FROM `gigdate_dateall` 
    WHERE (`dates` IN (2015-08-31, 2015-09-01, 2015-09-02, 2015-09-03) AND `type_date` = 0) 
    GROUP BY `dates` ORDER BY NULL


    Если .order_by() не делаю пустым. то тянет из настроек модели или других вышестоящих над запросом сортировок
    dates = models.DateField(_(u'Дата календаря'), blank=False)
    ...
    class Meta:
        ordering = ['-dates', '-create']

    И тогда группирует по двум полям.
    SELECT `dates`, COUNT(`dates`) AS `count` 
    FROM `gigdate_dateall` 
    WHERE (`dates` IN (2015-08-31, 2015-09-01, 2015-09-02, 2015-09-03) AND `type_date` = 0) 
    GROUP BY `dates`, `create` ORDER BY `dates` DESC, `create` DESC
    Ответ написан
  • Как сделать вход на сайт Django только после авторизации?

    syschel
    @syschel
    freelance/python/django/backend
    Принудительная авторизация:

    project/middleware.py
    from django.core.urlresolvers import reverse
    from django.http import HttpResponseRedirect
    
    class ValidLogin(object):
    
        def process_request(request):
            if not request.user.is_authenticated():
                return HttpResponseRedirect(reverse('signin'))
            return None


    project/settings.py
    MIDDLEWARE_CLASSES = (
        'project.middleware.ValidLogin',
    )


    А раздача прав уже или на уровне url`ов или на уровне вьюх.
    В урлах можно так

    from django.conf.urls import patterns, url
    from django.contrib.auth.decorators import user_passes_test
    urlpatterns = patterns('crm.views',
        url(r'^$', 
            user_passes_test(lambda u: u.is_superuser or u.is_moderator)(HomeCRM.as_view()),
            name='home'),
    )


    Если просто авторизацию через урлы, то так:
    from django.contrib.auth.decorators import login_required
    urlpatterns = patterns('crm.views',
        url(r'^$', 
            login_required(HomeCRM.as_view()),
            name='home'),
    )

    Но это каждую строку урла проверять на авторизацию... А потом ещё думать как реализовать права по грппам. Проще как выше, через middleware авторизацию проверять и слать на форму входа.
    Ответ написан