Задать вопрос
  • Как настроить доступ к сайту?

    syschel
    @syschel
    python manage.py runserver

    Надеюсь вы понимаете, что режим runserver это только для запуска на локальной машине, в режиме разработчика?
    Для запуска джанги на сервере где-то во внешнем мире, запуск через runserver не просто плохо, это табу! Нужно через (u)wsgi запускать или асинхронную версию. То есть внутри контейнера ставим nginx и через него светим 80м портом во вне. Либо вне контейнера докера слушаем nginx`ом порт контейнера и уже им во вне через 80й с самого сервера отвечаем.
    Написано
  • Как реализовать стартап и сохранить авторское право?

    syschel
    @syschel
    А "специалистов" нанимать за деньги планируете или искать тех кто бесплатно собирается делать?

    Как показывает опыт, 99.999% "стартапов" не стоят ничего и оказываются пшиком. При том сами по себе. Очень маленький процент из них что-то стоящих, не вывозят в маркетинг и продвижение продукта, который мог бы что-то представлять из себя. Да, вы можете попробовать в авторское право, но это время и средства, а у вас, как понимаю, даже прототипа нет, чтобы его куда-то или кому-то показывать. Не говоря про хоть какие-то реальные цифры "успешности" оного. Но будь у вас защита через авторское право, один фиг, ничего и никому не мешает сделать клон. ВК в своё время тоже с ФБ слизали, да и в других странах были аналоги, так как ФБ поленился локализацию сразу сделать под разные языки. Сильно помогло Марку штат юристов и суды? Нет. Но и до ФБ были социалки, и после.
    Написано
  • Что мне еще нужно изучить для бэкенд (фактически роадмап)?

    syschel
    @syschel
    Бекенд многогранен. Мне кажется надо сузить направление которое вам нужно и потом под него смотреть стек технологий и всего что вокруг него. Есть бекенд сайтов/мобильных апп. Есть микросервисы. Есть бекенд под железо/оборудование. И везде будет свой набор технологий и направлений, которые надо выучить. Да даже в одном конкретном, могут быть разные "дорожки", которые узко заточены под несколько технологий/фреймворков и всю экосистему вокруг них.
    В одной компании на условном питоне используют джангу и гит. На другом фастапи и гитлаб с сиай/сиди. Набор знаний одного языка тут будет не достаточно, если говорим не про джуна.
    Написано
  • Почему Django загружает не все css файлы?

    syschel
    @syschel
    Когда начинал только хтмл учить и работал под виндой, похожую проблему поймал. На локалхосте в коде ссылки на файлы были с заглавной, сами файлы с маленькой. И винда это прощала. А вот когда залил в интернет на линукс хостинг, поймал много печали. Пришлось всё переписывать в коде. Теперь привычка, что всё с маленькой в нейминге файлов. Никаких русских названий. И пробелы заменять нижним_подчёркиванием. Ну и спецсимволы в именах не использовать.
    Написано
  • Какой тайм-трекер выбрать для фрилансера?

    syschel
    @syschel
    Dmitry Bay, я последние несколько лет работал "в офисе", но по сути на удалёнке. Часть на почасовке, часть по "фикс ставке". И вот офису на ставке, проще в разы, чем на трекере. Ибо офисный рабочий может чай пить, общаться в кулуарах, перекуры и собрания всякие. Так же общения по задачам и так далее. У офисного на "ставке", это всё в 8 часовом рабочем дне учтено. А вот когда сидишь на "трекере" и учёт именно работы, то выходит, что за день часа 4 чисто на "кодинг". Даже без трекера, а просто "сколько времени потрачено на задачу?"
    Написано
  • Какой тайм-трекер выбрать для фрилансера?

    syschel
    @syschel
    Dmitry Bay, Спасибо, поправил.
    Да, гарантий нет и заказчик может оспорить. Но это как вариант указывать время вне активности. И таймтрекер не пароноидальный. Хотя и были с апворком курьёзы у коллег. Когда при разработки адал сайтов, сама платформа банила время, за адалт контент. =)
    Написано
  • Какой тайм-трекер выбрать для фрилансера?

    syschel
    @syschel
    Dmitry Roo, Так тут же разговор не про сотрудника офиса на пятидневке, а про фрилансера. Который берёт задачи и их делает, оговаривая время.
    ИМХО, тут или сразу на берегу договариваться как происходит определение времени на задачу (заказчик/исполнитель определяет), или какой будет учёт. А не в процессе исполнителя напрягать.

    З.Ы. На международных биржах работают миллионы фрилансеров и ведут учёт времени почасовых контрактов, через тайм трекеры. И программистов там очень много. Нормально всё с программистскими задачами решается через трекеры. Никто не запрещает, вносить "мануальное время", потраченное на задачу вне активности на ПК. Просто это проговаривается, если есть вопросы. Даже на долгосрочных контрактах, которые длятся годами.
    Написано
  • Какой тайм-трекер выбрать для фрилансера?

    syschel
    @syschel
    Ivan-Sofronov, Видел компании, которые и в офисе ставят следилки за сотрудниками и их активностью (сайты, программы, активность мышки/клавы, скриншоты экрана/вебкамеры).

    З.Ы. Сам когда-то на апворке работал через их тайм-трекер, на почасовых задачах. Ничего плохого не заметил. Раз в 10 минут делается скриншот экрана, в рандомный промежуток времени. Так же палит количество нажатий клавиш и активность мышки. Можно добавить скрин с вебкамеры, но ни разу не включал. Сам включаешь трекер когда начинаешь работать. Сам выбираешь "контракт", по которому собрался работать. Как и задачу (можно самому описать, в милстоуне). Раз в час окно выскакивает, если по одной задаче работаешь и предлагает оставить комментарий или изменить задачу (нужно для разбиение на микро задачи, чтобы понятнее было в "отчёте", что делал). Но можно и не менять, подтвердить прошлое.

    Если вдруг что-то не то на скриншот попало в "десятиминутке", можно тут же в программе его удалить. В принципе когда скрин делался, был звуковой и визуальный сигнал. Уже не помню, но вроде и окно вылазило со скрином и кнопкой "удалить", на секунд 5. Удаляешь скрин, удаляется 10 минут из учётного времени.

    Если форма найма "фикспрайс", а не "почасовое". То тайм трекер можно не использовать. То есть задача оговорена, сумма оговорена и не важно будешь делать 5 минут или 5 дней.

    З.З.Ы. Так же трекер не всегда помогает отследить время "вне активности ПК". К примеру надо на бумажке набросать схемку программы, что-то почиракать/порисовать там. Либо идёт выполнение долгой программы (условно "написать парсер сайта ebay и спарсить список товаров с полным описанием, выбранных продавцов - клиенту нужен этот список". Сам парсер ты пишешь, условно 1ч, а потом парсер шуршит 2 дня, выкачивая 1кк товаров, в обход антипарсеров). Сам же трекер upwork`a, если нет активности на ПК, останавливает таймер через 20 минут. Тут как раз помогает или фикспрайс контракт, или можно ручками добавить "мануальное время" (вне активности у ПК).

    З.З.З.Ы. За термины могу путать, там до ковида работал, много лет прошло. Но ничего плохого в таймтрекере нет. Если он управляем тобой и "заказчик" не сумасшедший параноик.
    Написано
  • Как проверить что пользователь это автор в Django?

    syschel
    @syschel
    Илья Лукьянов, Только второй вариант с ошибкой. Так как сначала выполняется первый кверисет, то есть базовый. И если в базе нет записей. То дальше фильтры не помогут.
    Но даже если там что-то было, то второй кверисет если вернёт пустой список, то и третий шаг пролетит. Так как он будет фильтровать уже пришедший кверисет, который пустой.

    Если он нужен, вернее так:
    def get_queryset(self):
            queryset = super().get_queryset().all( ).annotate(comment_count=Count("comments"))
            
           # Проверяем пользователь авторизованный или нет
            user_queryset = None
            if self.request.user.is_authenticated
                user_queryset =  queryset.filter(author=self.request.user) 
           #  Проверяем что пользовательский список вернул пустоту ИЛИ пользователь не авторизирован
            if not user_queryset or not self.request.user.is_authenticated:  # либо можно так - if not len(user_queryset): 
                queryset = queryset.filter(category__is_published=True, 
                                                  is_published=True,
                                                  pub_date__lte=timezone.now())
           # Если второй иф не сработал, значит нам важен список полученный в первом. 
           # Приравниваем его к основному
            else:
                queryset = user_queryset
            return queryset
    Написано
  • Django.objects.all() не работает, как решить?

    syschel
    @syschel
    Вам же написало, что проблема во 2 строке. Питон не смог произвести импорт класса модели, дальше он не пошёл, упал.
    Написано
  • Как решить проблему с авторизацией Django?

    syschel
    @syschel
    Ar123sj, Это стандартное поле для доступа в дажнго админку.
    Дальше уже идут права работы с админкой. Или полный доступ ко всему через атрибут "is_superuser". Или ограниченный, через пермишены (табличка связей в профиле пользователя, к каким моделям он имеет доступ и на какие действия (смотреть, создавать, удалять, ...)).
    Написано
  • Почему не работает авторизация в Django?

    syschel
    @syschel
    Для начала стоит проверить на джанго админке. Если и туда не пускает, а там не самописная авторизация, то проблема с настройками пользователя. Может забыли модель указать в settings (если юзер кастомный). Или же что-то по полям намудрили
    Написано
  • Один сервер VPS и несколько сайтов каждый в своём docker контейнере, как настроить глобальный nginx?

    syschel
    @syschel Автор вопроса
    Alexey Dmitriev, а эти ip адреса контейнеров, они статичные? То есть, если не переустанавливать контейнеры, а перезапускать их, адреса останутся? Про имена кажется понял, я про них думал, но не был уверен, пойду смотреть в их сторону.
    Извиняюсь если вопросы слишком уж "примитивные".
  • Один сервер VPS и несколько сайтов каждый в своём docker контейнере, как настроить глобальный nginx?

    syschel
    @syschel Автор вопроса
    Уточните пожалуйста.
    Если у меня 5 докер контейнеров, все отвечают по 80 порту.
    Как именно через прокси nginx мне их ловить?

    Как на одном сервере работать с одним сайтом спрятанным в контейнер, проблем с пониманием нет:
    server {
        listen      80;
        server_name www.project1.ru project1.ru;
        location / {
            proxy_pass http://localhost:80;
        }
    }


    Туплю именно на моменте, что на машине много разных сайтов в разных контейнерах крутятся и как именно глобальном nginx их ловить и отдавать под своими доменами.
    Может что-то у самого докера нужно сделать предварительно? Не знаю. Гугл же отдаёт статьи с примерами именно 1 проект на 1 машине.
  • Bitbucket фсе, блокирует российские IP?

    syschel
    @syschel
    Антон Кащеев, Спасибо за уточнение, добавил в ответ.
  • Bitbucket фсе, блокирует российские IP?

    syschel
    @syschel
    Антон Шелестов, Так же как и локально, так же и на сервере в консоли.
    Если же вопрос "как" при текущей проблеме, то подробнее ответил внизу.
    Да, можно впн куда угодно ставить. Тот же OpenVPN ставится в несколько шагов по инструкции с гугла.
  • Bitbucket фсе, блокирует российские IP?

    syschel
    @syschel
    Локально из РФ, с VPS в тайм вебе, так же:
    syschel@ubuntuPC:~$ ping bitbucket.org
    PING bitbucket.org (18.234.32.156) 56(84) bytes of data.
    ^C


    С сервера в европе
    Автоматом определяется как IPv6 и по нему пингуется, если сам IPv4 пинговать, то облом:
    root@syschel:~# ping 18.234.32.156
    PING 18.234.32.156 (18.234.32.156) 56(84) bytes of data.
    ^C
    --- 18.234.32.156 ping statistics ---
    11 packets transmitted, 0 received, 100% packet loss, time 10219ms
    
    root@syschel:~# ping bitbucket.org
    PING bitbucket.org(2406:da00:ff00::22c0:3470 (2406:da00:ff00::22c0:3470)) 56 data bytes
    64 bytes from 2406:da00:ff00::22c0:3470 (2406:da00:ff00::22c0:3470): icmp_seq=1 ttl=40 time=89.5 ms
    64 bytes from 2406:da00:ff00::22c0:3470 (2406:da00:ff00::22c0:3470): icmp_seq=2 ttl=40 time=85.5 ms
    64 bytes from 2406:da00:ff00::22c0:3470 (2406:da00:ff00::22c0:3470): icmp_seq=3 ttl=40 time=85.3 ms
    64 bytes from 2406:da00:ff00::22c0:3470 (2406:da00:ff00::22c0:3470): icmp_seq=4 ttl=40 time=85.4 ms
    ^C
    --- bitbucket.org ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3117ms
    rtt min/avg/max/mdev = 85.339/86.414/89.450/1.753 ms
  • Bitbucket фсе, блокирует российские IP?

    syschel
    @syschel
    Если через европейский ВПН подключаться, то всё работает (и веб морда и работа с GIT`ом)
  • Bitbucket фсе, блокирует российские IP?

    syschel
    @syschel
    Не просто. Консольно git pull/push так же не работают. Веб морда через раз открывается.
    Если через европейский ВПН подключаться, то всё работает (и веб морда и работа с GIT`ом)