• Имеющие опыт с payoneer порекомендуйте, какие банкоматы лучше использовать?

    syschel
    @syschel
    freelance/python/django/backend
    Не подскажу конкретно по банкам. Но когда Альфа ввела лимит на снятие долларов (было около 2-4т долларов за раз можно, а сейчас 100-200 долларов). То многие фрилансеры пришли к выводу, что стало выгоднее снимать сразу в рублях у тех банков, кто даёт максимальную сумму за транзакцию, в банкомате. Вроде были банки, дающие 150-200т рублей за операцию.

    Посмотрите в эту сторону, сейчас банки (банкоматы) не вспомню, но после тех изменений в альфе, это тут обсуждалось активно.
    Ответ написан
  • Что делать если хочешь стать верстальщиком?

    syschel
    @syschel
    freelance/python/django/backend
    1. На вопрос нельзя дать однозначный ответ.
    2. Нарабатывайте практику, пускай даже делая заказы "в стол", а лучше под биржи по продаже темплайтов.
    3. Ниша "верстальщик" это всётаки чернорабочий. Минимум примитивных знаний, что за собой несёт низкий порог вхождения и как правило большую конкуренцию. А за ней и низкие рейты. Лучше от верстальщика уходить во front-end разработчики. Но для начала нужно понять чем они отличаются от "верстальщика".
    4. Частые общения на тематических, как тостер, ресурсах, со временем тоже дают свою долю заказчиков.
    5. Удалённая работа не заканчивается на фрилансе, можно удалённо и на постоянке работать. То есть, посмотреть и в сторону сайтов о поиске сотрудников.
    Ответ написан
  • Как сделать тяжелый импорт из excel 800к товаров?

    syschel
    @syschel
    freelance/python/django/backend
    1. У вас именно EXEL файл или всётаки CSV который вы открываете на десктопе с помощью экселя?
    2. Если всётаки EXEL файл. Там слишком много всего нагорожено, на вроде вёрсток и формул или голые таблицы?
    3. Если всётаки голые таблицы. Вы можете делать именно CSV файл?

    Если данные будут в CVS формате, то можно всё загрузить средствами MYSQL и не использовать для обработки PHP или его библиотеки. Тогда результат будет в разы выше, чем если перебирать с помощью ПХП и потом кормить в MSQL

    Когда я в своё время сталкивался с проблемой загрузки файла товаров в базу, там было несколько миллионов единиц, то оптимальным стало именно такое решение > LOAD DATA

    Кусок моего старого MySQL кода, для наглядности
    // Загружаем кашерный файл
    LOAD DATA LOCAL INFILE '/srv/cms_cpa/files/adimport_items.csv' INTO TABLE adimport_tmp CHARACTER SET utf8 FIELDS TERMINATED BY '|' ENCLOSED BY "'" LINES TERMINATED BY '\n' IGNORE 1 LINES (id_adimport,article,available,currencyId,delivery,description,id,name,oldprice,param,picture,price,url,vendor,advcampaign_id,advcampaign_name);
    
    // Загружаем только нужные поля (!!!)
    LOAD DATA LOCAL INFILE '/srv/cms_cpa/files/adimport_items.csv' INTO TABLE adimport_tmp CHARACTER SET utf8 FIELDS TERMINATED BY '|' ENCLOSED BY "'" LINES TERMINATED BY '\n' IGNORE 1 LINES (id_adimport,@ISBN,@adult,@age,article,@attrs,@author,available,@barcode,@binding,@brand,@categoryId,@country_of_origin,currencyId,delivery,description,@downloadable,@format,@gender,id,@local_delivery_cost,@manufacturer_warranty,@market_category,@model,@modified_time,name,oldprice,@orderingTime,@page_extent,param,@performed_by,@pickup,picture,price,@publisher,@sales_notes,@series,@store,@syns,@topseller,@type,@typePrefix,url,vendor,@vendorCode,@weight,@year,advcampaign_id,advcampaign_name,@deeplink);
    
    // Все поля
    LOAD DATA LOCAL INFILE '/srv/cms_cpa/files/adimport_items.csv' INTO TABLE adimport_tmp CHARACTER SET utf8 FIELDS TERMINATED BY '|' ENCLOSED BY "'" LINES TERMINATED BY '\n' IGNORE 1 LINES (id_adimport,ISBN,adult,age,article,attrs,author,available,barcode,binding,brand,categoryId,country_of_origin,currencyId,delivery,description,downloadable,format,gender,id,local_delivery_cost,manufacturer_warranty,market_category,model,modified_time,name,oldprice,orderingTime,page_extent,param,performed_by,pickup,picture,price,publisher,sales_notes,series,store,syns,topseller,type,typePrefix,url,vendor,vendorCode,weight,year,advcampaign_id,advcampaign_name,deeplink);

    Ответ написан
  • Пишут ли frontend без фреймворков?

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

    syschel
    @syschel
    freelance/python/django/backend
    Да, проблема есть, НО вы не туда смотрите. У вас типичная проблема новичка, она в иной плоскости. Вы слишком самоуверенны и считаете что много знаете/умеете/достойны_большего. В начале кажется многое "не нужным" и "глупым". Хочется не использовать фреймворк, а писать самому. Хочется написать очередной велосипед и свою ОС.
    Обратная сторона самоуверенности, это стремление вообще всё возможное покрыть сторонними библиотеками. Даже если это есть в вашем фреймворке и вызывается одной функцией, то всёравно гуглить отдельную библиотеку.

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

    syschel
    @syschel
    freelance/python/django/backend
    Добавь авторизацию Apache`м или Nginx`ом. То есть при входе будет выскакивать доп окно с требованием пароля и логина, да дай его им.

    Либо вводи в класс/функцию входа, дополнительное условие с учётом домена сайта.
    Ответ написан
  • Ссылка на другую страницу, как сделать 2 ссылки разными страницами?

    syschel
    @syschel
    freelance/python/django/backend
    Зачем вы инклудите один и тот же файл ссылок, в двух местах(адресах)?
    urlpatterns = [
        url(r'^$', include('mainapp.urls')),
        url(r'^стейк-лосося/', include('mainapp.urls')),
    ]

    Вам никто в базовом urls.py не запрещает делать так:
    from django.conf.urls import url
    from mainapp.views import index, index_wrapper
    
    urlpatterns = [
        url(r'^$', index, name='index'),
        url(r'^стейк-лосося/', index_wrapper, name='index_wrapper'),
    ]
    Ответ написан
  • Django.ModuleNotFoundError: No module named 'news '?

    syschel
    @syschel
    freelance/python/django/backend
    В settings.py в блок INSTALLED_APPS = [], не добавлен модуль 'news'
    INSTALLED_APPS = [
        ...
        'news'
    ]
    Ответ написан
  • Как представить time series data если используется ORM?

    syschel
    @syschel
    freelance/python/django/backend
    Так как вы и поняли, так и представляйте.
    Модель в джанге не означает бизнес логику, она означает именно по сути таблицу в БД. По мимо вашего варианта, в БД спокойно могут быть таблицы со списками, к примеру городов, стран, валют, цветов или характеристик.
    Единственное что можете джангой ещё сделать, вроде бы не очевидного. Это переопределить метод Save() у модели А и проверять. Если объект уже есть (то есть выполняется обновление объекта, а не создание), то перед сохранением, старые значения сбросить в вашу "ChangeOptions" которая состоит из полей(связь на А, старое_значение и ДатаТайм).
    Ответ написан
  • Бан за безактивность на upwork?

    syschel
    @syschel
    freelance/python/django/backend
    Да, вы верно слышали. Это защита от спама и гулпых фрилансеров, которые шлют однотипные шаблонные предложения на вроде "найми меня".

    Если вообще без активности аккаунт, ничего страшного не будет. Единственное, поставьте статус "не нуждаюсь в работе" в настройках. Это чтобы вам не слали инвайты. Ибо есть статус профиля "время отклика на инвайты", где желательно его держать в "отвечает в течении суток". И если всётаки прилетит инвайт, но он вам не интересен, постарайтесь как можно быстрее (в течении суток) отказаться от него, выбрав одну из причин в списке. Отказ от ивайтов никак не влияет на рейтинг, только время отклика.

    З.Ы. Во время когда ищу новый заказ, мне 60 бесплатных "коннектов" (по 2 на заявку) очень много, так как очень скурпулёзно выбираю к кому отправить предложение о работе. То задача размытая или не интересная, то цены не те, то условия подозрительные, то клиент какой-то не благонадёжный, то уже наняли. Но некоторые, особенно новички(при регистрации дают 90 коннектов на первый месяц), все эти поинты умудряются прогулять за пару часов в первый день. Рассылая всем подряд предложения. Вот и выходит, что с такими система борется. Повышая качество. Так как не крути, но нас фрилансверов там со всего мира миллионы, а вот работодателей с деньгами всего лишь тысячи.
    Ответ написан
  • Безопасно ли записывать "секретные" данные в txt-файл с именем из кракозябр (например salkgkawj2145lkjsalfkj@24lkjl), который открыт для чтения?

    syschel
    @syschel
    freelance/python/django/backend
    Не безопасно, вспомним утечки всех СМСок у крупных сотовых операторов лет 5 назад.

    Можно хранить в тхт файлах, но раз есть пхп на сервере, то через него и отдавать. То есть "база" из файлов лежит в папке, к которой из вне не попасть, но сам пхп может смотреть папку и вычитывать файлы. Вот этот пхп пускай на время сессии и выдаёт контент файлов. Этот же пхп файл определяет и права на доступ к данным, если там многопользовательский вариант или просто парольный доступ.
    Через мод_реврайт, можете симулировать расширение .txt в адресной строке, а через контент тип формат text.
    Ответ написан
  • Как выполнять функцию в одно и то же время в Django?

    syschel
    @syschel
    freelance/python/django/backend
    А на cron повешать не пробовали? Он же как раз и нужен для запуска скриптов по таймеру.

    Я думаю вы не с той стороны подошли к задаче. Кроном же стартовать джанговские вещи можно или через Celery или через менеджеры. Либо вообще просто питон файл вызывать, а внём функцию через __main__
    Ответ написан
  • Как я могу купить N (виртуальный объект) - то что сделал другой человек, через интнернет?

    syschel
    @syschel
    freelance/python/django/backend
    Подробно уже описывал в другом вопросе.
    Если кратко, то в РФ есть два понятия прав. Одно на продукт, которое в 99% случаев заключают по договору и думают что этого достаточно. Второе на "исключительные права", то самое что можно обозначить как "авторское право" или "интеллектуальное". Вот на второе мало кто заключает договора и отдельно оплачивает. Большинство как исполнителей, так и заказчиков, даже не знает о таком и думает что достаточно варианта №1. Но это заблуждение, нужно обязательно второй договор и отдельную оплату, либо прописывать в первом, что исключительные права тоже переходят заказчику.
    Ответ написан
  • Почему collectstatic собирает дубли?

    syschel
    @syschel
    freelance/python/django/backend
    Если я правильно вас понял, то думаю, что вы не до конца поняли смысл STATICFILES_DIRS и STATIC_ROOT

    Разрабатывая приложение локально, вы используете runserver и тут статику отдаёт девелопесркий вебсервер джанги. Когда же вы загрузите на продакшн, там статику отдавать будет уже вебсервер (apache, nginx etc). Пока вы разрабатывает, то runserver берёт статику из пути STATICFILES_DIRS, на продакшене статика будет браться из STATIC_URL.
    Выполняя же команду collectstatic, вы говорите джанге "из локальных папок (а их может быть много), всё собрать в одной для продакшена". Вот и получается, что вы увидели "дубли".

    # Static files (CSS, JavaScript, Images)
    # https://docs.djangoproject.com/en/1.11/howto/static-files/
    MEDIA_ROOT = os.path.join(BASE_DIR, "media")
    MEDIA_URL = '/media/'
    STATIC_ROOT = os.path.join(BASE_DIR, "static")
    STATIC_URL = '/static/'
    
    STATICFILES_DIRS = (
        os.path.join(BASE_DIR, "dev_static"),
    )

    Если папка из STATICFILES_DIRS находится внутри проекта, то её я обычно добавляю в .gitignore
    Ответ написан
  • Какой стэк подойдет для удаленной работы/фриланса (КРОМЕ html/css/js)?

    syschel
    @syschel
    freelance/python/django/backend
    Самое простое, это пойти на 1-2 крупных фриланс площадок и начать их мониторить хотя бы неделю. Посмотреть там какие вообще есть категории, сколько и каких видов работ там постоянно появляется. Сколько и как быстро/часто фрилансеров на них откликается. Ну и потом пробовать что-то из этого делать/изучать, хотя бы по верхам. То что понравится и зацепит, за то и браться изучать глубже.
    А так, взять и угадать что вам понравится? Не реально, ибо, как я заметил, почти 95% начинашек, бросают начинание через неделю-две и уходят вообще в левое, никак не связанное с фрилансом или программированием. При том перед бросанием, они пробуют метаться в разные не связанные стеки и сферы.
    Ответ написан
  • Как передать картинку через форму Django?

    syschel
    @syschel
    freelance/python/django/backend
    Забыт параметр файлов request.FILES
    form = NoteForm(request.POST, request.FILES)

    А так же в HTML теге формы, забыт параметр того, что форма работает с файлами
    <form method="POST" enctype="multipart/form-data">
    Ответ написан
  • Как добавить свой рендеринг страницы в админке?

    syschel
    @syschel
    freelance/python/django/backend
    Как изменить шаблон действующей страницы в админке, указал Astrohas
    Но если теперь нужно в пределах админки создать новую страницу (не относящуюся к существующему функционалу CRUD), куда и будет указывать ссылка из изменённого шаблона. То переопределяем get_urls()
    P.S. Вьюху от данного проекта можно в файле admin.py описать как в примере, но я бы вынес всётаки в views.py

    пример:
    class PetAdmin(admin.ModelAdmin):
        ...
        def get_urls(self):
            urls = super(PetAdmin, self).get_urls()
            my_urls = [
                url(r'^(?P<id>\d+)/radius/$', self.admin_site.admin_view(PetAdminRadius))
            ]
            return my_urls + urls

    И открывается сиё чудо по адресу:
    localhost:8000/admin/app_name/model_name/639/radius
    Ответ написан
  • Как скрыть некоторые поля для отдельного пользователя в 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()
    Ответ написан
  • Как прописываются пути к django на серверах хостера?

    syschel
    @syschel
    freelance/python/django/backend
    Первая и главная ошибка в том, что сайты на Python и под фреймворком Django имеют свою специфику установки и запуска. Там нужен, по первости, очень большой бубен и много терпения. То что на хостинге прописали, это правила для HTML(голый) или PHP сайтов, которые в 98% используются "веб разработчиками". Вам нужно гуглить "установка Django на %ваш_хостинг%" или "Deploy django". Проще всего попросить хостера вам помочь, сразу сказав, что сайт на python`e, либо найти фрилансера на разовую услугу установки плюс составление инструкции пошаговой его действий.

    upd: разница между html(php) сайтами и python(django) в установки на веб хостинг в том, что первые обычно ограничиваются залитием файлов в строго указанную хостером папку, просто как набор файлов. А Django сайт устанавливается как программа, условно говоря "через инсталлятор" и по этому требует больше обычных прав пользователя, больше знаний оператору и наплевать на "папку на сервере".
    Ответ написан