• Пропадает память. Как тренировать?

    @776166
    Выскажу немного неожиданную мысль. По описанию, у вас всё в порядке, даже без поправки на возраст.

    1) Мозг не будет и не должен запоминать всё подряд. Ненужное, особенно то, что помечено "сделано" может глубоко забыться. Это - нормально! (с)

    2) Режим работы и переключения контекстов может очень сильно влиять на запоминаемость информации. Для усвоения нужно обязательно делать перерывы в работе. Расклад примерно такой: 45 минут работы, 15 минут перерыв, когда вы не делаете вообще НИЧЕГО. Работать запоем плохо. Перегружать мозг нельзя. С другой стороны, быстрые и частые переключения контекста из-за физиологии могут приводить к частичной потере данных из кратковременной памяти. Читайте профильную научно-популярную литературу по этому поводу. Особенно мешает мозгу богомерзкая социальщина. Переключение контекста с погружением занимает около 20 минут. Т.е. если вы отвлеклись на фейсбучек, телефонный разговор, то потом возвращаться к программированию вы будете примерно 20 минут. Очень влияет окружение - шумы, особенно информационные.

    3) Очень важен сон. Количество сна должно быть от 7 часов. Или порциями по одному полному циклу (примерно 2 часа 20 минут, это легко можно посчитать ночью, замеряя время, когда вы просыпаетесь). Во время сна мозг обрабатывает и складирует информацию. Если ему не давать это делать, то могут быть последствия. Читайте про циклы сна.

    4) Читайте литературу про то, как функционирует мозг, там хорошо всё описано. Беруши, наушники с белым шумом, и нафиг из опенспейса, последний вообще гиганстское вселенское зло в подавляющем числе случаев. Жене установку, чтобы не отвлекала каждые 5 минут даже по мелочи.

    Но если есть подозрения на какие-то болезни, то лучше к врачу на обследование.
    Ответ написан
  • Nginx на https -> Django на runserver -> DRF + swagger. Как заставить swagger ходить на https, а не на http?

    @776166 Автор вопроса
    Разобрался.

    В settings.py
    SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTOCOL', 'https')


    В nginx
    proxy_set_header        X-Forwarded-Protocol  $scheme;


    Проблема была в том, что в интернете пишут неточно, а помимо копипасты ещё надо иногда думать.
    Ответ написан
  • Как отправить email пользователю?

    @776166
    Всё так.
    Кроме
    EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

    Который отправляет почту прямиком в консоль (https://docs.djangoproject.com/en/2.2/topics/email... а не пользователю.
    Ответ написан
  • Где найти views для базового шаблона в Django?

    @776166
    0) В базовый, не в базовый (наследующий базовый), это не важно. Важно то, как именно передать в шаблон. В базовый шаблон никакой контекст не передаётся. Базовый шаблон просто расширяет ваш шаблон, а контект там один.

    1) В вашем случае НЕОБХОДИМО использовать штатный request.user и не парить себе мозг (https://docs.djangoproject.com/en/2.2/ref/request-...
    Будет что-то типа {{ request.user.profile.get_absolute_url }}

    UPD: Я не сразу углядел. У вас отедльная моделька для профиля, привязанная к пользователю.
    Надо сделать в модели свойство, которое будет отдавать профиль для этого пользователя. Если сможете, то вопрос решен и будет работать как в примере выше. Если нет, то проще всего добавить context processor и отдавать переменную profile. Работать будет как-то так: {{ profile.get_absolute_url }}. Но лучше всего, конечно, определить в модели User свойство profile.

    2) Если штатный request.user не подходит (почему!?), или вы хотите понять принцип на будущее, то есть два похожих варианта:
    2.1) Передавать ваш объект в контекст конкретного шаблона из вьюхи. Будет работать только в этой вьюхе. Банально, да?
    2.2) Написать context processor и добавить его в settings.TEMPLATES.OPTIONS.context_processors (см то, как это сделано в базовом settings.py и гугли примеры). Будет работать вообще везде в рамках рендера шаблонов. Мы не ищем лёгких путей для request.user!

    Вадим Шаталов предлагает использовать фильтры/тэги. Это не совсем то (не совсем об этом), потому что в них всё равно надо будет или передавать request.user, или брать из контекста, куда его надо будет помещать одним из вышеописанных способов, или как-то его нечеловеческим образом откуда-то доставать, чего делать уже совсем не нужно.
    Ответ написан
  • Как грамотно прописать urlpatterns в django?

    @776166
    Так статика не подключается идеологически и особенно так, как это сделали вы.
    "./" означает, что вы отталкиваетесь от текущего расположения, что уже совсем вообще ну никак неправильно.

    Нужно так:
    {% load static %}
    <script src="{% static "js/jquery-1.11.3.min.js" %}"></script>

    https://docs.djangoproject.com/en/2.2/howto/static...
    Ответ написан
  • Не отображается страница?

    @776166
    Возможно, дело в отсутствующем '/':
    path('/', views.cart_detail, name='cart_detail'),
    но это не точно
    Ответ написан
  • Как подключить CSS (хотя бы один файлик) в django?

    @776166
    А
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, "static"),
        '/что-тотам/vitalik/static/',

    в settings.py есть и правильный?

    https://docs.djangoproject.com/en/2.1/howto/static...
    Ответ написан
  • Как запомнить переменную на другой странице?

    @776166
    Как вариант, можно наджаваскриптить id'шники, передать на следующую страницу и там распарсить.
    Ответ написан
  • Django. Как скрыть ненужные поля в форме в зависимости от выбранной категории?

    @776166
    Варианов два: на фронте и на бэке.
    На фронте надо jsкриптить. На бэке можно сделать вьюху, в которую при изменении будет аякситься форма или целиком перезагружать страницу, перерасчитывая форму и возвращать её обратно.
    Ответ написан
  • Хочу стать хорошим программистом,как быть?

    @776166
    0) Программировать.
    1) Программирование = практика. Нужно писать код, решать задачи. Желательно, какие-то реальные.
    2) Не столько читать, сколько программировать.
    3) Определиться с языком, вернее, с отраслью. На C# не пишут сайты, на PHP не делают десктопные приложения, на objective-c не пишут демонов. На Pascal вообще не надо ничего писать.
    4) Программировать.
    5) Возраст сложный. Внимание концентрируется плохо. Порог вхождения в первый язык может быть и небольшим (что вряд ли), но проблема в диссонансе между ожиданиями и реальностью. Начать хорошо программить или программить вообще сразу не получится. Придётся себя заставлять. Придётся ощущать себя дураком, который ничего не может понять. Это больно, не все могут сразу въехать. Это — нормально. Терпение и труд. Не всё сразу. Главное — не бросать и что-то обязательно получится. Или наоборот, вы поймёте, что ну совсем не ваше. Это тоже нормально.
    6) Желателен наставник. Желателен постановщик задач для решения. Для учащихся неплохой вариант с курсами. Там хоть какая-то программа есть, которую надо выполнять. Так проще учиться, когда тебя пинают, чем когда ты половину энергии тратишь не на учёбу, а на самопинание.
    6) У Вас сейчас задача не стать хорошим программистом, а стать программистом вообще. Это труд. Трудиться тяжело.
    7) Программировать.
    8) Лучше сразу уходить на linux и начинать изучать всю современную it-экосистему. Это тоже важно и нужно. На практике. Больше практики.
    9) По возможности, максимально скоро идти работать программистом — получать опыт.
    10 ) Программировать.

    И лично от себя. Не надо PHP для сайтов, если будет такая возможность, возьмите сразу Python.

    UPD: Не могу не прокомментировать зложелателей. Какие же вы моральные уроды. Конченные мрази. Не надо обращать внимание на это мудачьё.
    Ответ написан
  • Можно ли учить Django без знаний Python?

    @776166
    TL;DR:
    1) В конечном счёте, всё равно всё решит практика. Как в любом программировании.
    2) Научиться можно, но сложно и долго. И всё равно другого пути не будет.

    Если у вас будет готовый, работающий проект django, в рамках которого надо будет решать простенькие задачи, то будет проще.
    Если вы программировали до этого, то будет проще, но не сильно, и время это особо не сократит.
    Ещё очень пригодятся навыки системного администрирования, потому что там ещё экосистема быть должна.
    Т.е. по-хорошему, надо уметь и nginx+uwsgi|etc настроить, потому что вы же не будете в продакшене держать runserver 0.0.0.0:8000 без сертификатов https, да? И саму экосистему использовать, ведь вы же не собираетесь делать проекты БЕЗ виртуальное окружение, да? И базу данных подключить, потому что вы же не будете в продакшене пользоваться SQLight, да? Было бы неплохо знать хотя бы sh, а ещё лучше ansible, ну или хотя бы разобраться в каком-нибудь heroku, если вы — ленивая задница, потому что вы же не собираетесь deploy руками делать, да? На самом деле, всё это не обязательно, кроме виртуального окружения. Остальное могут сделать devops, но вы становитесь командозависимым и не понимаете технологий, с которыми работаете. А это плохо и по-началу существенно снижает вашу ценность.

    Django — прекрасный фреймворк на прекрасном языке, но у него есть порог вхождения, и он немаленький. Python всё равно надо будет изучать, хотя гугления проблемных мест и документации будет достаточно, ибо бизнес-логика обычно более-менее простая, хотя без умения программировать всё равно никуда, не все задачи покрываются батарейками. Но простой сайт сделать действительно можно. Как только почувствуете, что начинает получаться, идеально найти лёгкую подработку/стажировку начинающего Джуниора. Идеально, прямо устроиться работать хотя бы за еду и набираться опыта, который потом всё решит.

    И самое главное запомни, сынок: DRF — это сложный BOSS, к прохождению которого надо предварительно готовиться и без прокачки он не проходится, а проходить его скорее всего придётся.
    Ответ написан
  • Как правильнее всего сделать вложенную форму в Django 2?

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

    @776166
    Это сложно. :(
    По-хорошему, вам надо бы использовать DRF, но он к чертям взрывает мозги неподготовленным. Там очень много всего и слишком большая вариативность. Но можно и ручками это сделать, но там дофига тонкостей. Например, авторизация, которая тоже взорвёт вам мозг, если делать её руками. API по-сути, это просто определённые запросы к серверу, на которые он даёт даёт ответы. Обычно в JSON или частями кода (это удобно для форм). С другой стороны, освоение DRF обязательно. Всё равно придётся. Чем раньше, тем лучше.
    Вторая проблема — необходимость изучать какие-то фреймворки для фротнтенда, хотя, по-началу можно и ручками с jQuery поковыряться.

    В можете реализовать задачу примерно таким образом: Берёте любую страницу и по частям переносите её функционал с рендера сервером, на рендер из данных на клиенте. Запрашиваете у севрера по API данные, он их вам отдаёт, вы их рендерите JS. Будет трудно. Я сочувствую.
    Если ваши модели хорошие, то вам не составит большого труда прикрутить более-менее полноценное API.
    Но вообще, задача довольно сложная. Там и проектировать надо и API реализовывать.
    Ответ написан
  • Чат на чистом Django?

    @776166
    Лучшe не надо. Попробуйте websockets.

    1) Рабочий пример чатика https://github.com/sushma-goutam/ws-chat
    2) Поднимаете в контексте проекта django и интегрируете его туда, получая всё, что хотите в любых формах и количествах. (https://toster.ru/q/618375)
    3) Profit.
    Ответ написан
  • Как использовать модели Django в своих скриптах?

    @776166
    В общем, сверху ответили. Можно пользоваться командами. Это классно и удобно. Есть батарейка для cron.
    А если это совсем внешний скрипт или что-то проектно-сайтовое, но связанное, например, какой-нибудь чат или бот, то надо импортировать окружение django и лучше, что бы он крутился в виртуальном окружении проекта.

    Сам импорт выглядит как-то так:
    import sys, os
    import django
    sys.path.append('/path/to/settings/py/')
    os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
    django.setup()


    https://docs.djangoproject.com/en/2.1/topics/setti...
    Ответ написан
  • Как правильно перенаправить nginx с http на https?

    @776166 Автор вопроса
    Проблема была не в перенаправлении, а в том, что у одного хоста в server был указан ssl on. В результате этого ВСЕ сайты по http отваливались с 400 ошибкой.
    Что тут не так, я не знаю, и сейчас нет времени разбираться. Если кто-то может объяснить — будет очень хорошо и спасибно.
    Ответ написан
  • Как запретить писать telegram боту в личку?

    @776166
    Мнэээ…
    1) Если не подписывались, значит это СПАМ и надо жаловаться. Чтобы бота банили к егерям.
    2) Если подписывались, значит должен быть интерфейс отписки.
    3) Если интерфейса отписки нет, писать владельцу бота, чтобы отключил вас и/или прикрутил отписку. Лучше, конечно, «и», потому что отсутствие возможности отписки —моветон и попахивает СПАМом.
    Ответ написан
  • Неправильно работает Django?

    @776166
    Подключать статику надо только через {% static "[путь до файла]" %}

    Судя по вашим комментариям в обсуждении, у вас или плохо проект спланирован в плане статики, или вы её неправильно подключаете. Относительные пути с ../ лучше вообще не использовать.

    Скорее всего, правильный путь должен быть таким: /static/posts/js/jquery-3.3.1.min.js да?
    Ответ написан
  • Как в Debian выполнить код после рестарта системы (надо запустить memcached)?

    @776166
    В указанном случае поправьте фам сервис (/etc/init.d/memcached), но это очень плохой вариант. Вернее, не очень хороший. Можно свой персональный memcached поднять на другом порту со своими настройками, оставив дефолтный, как есть.

    Опционально:
    /var/run/ не очень предназначена для хранения данных (https://ru.wikipedia.org/wiki/FHS). Ваши данные надо класть в /tmp/memcached или даже в /run/shm/memcached
    Ответ написан
  • Какую платформу выбрать для крупномасштабного веб-проекта?

    @776166
    Django
    [+] Не PHP
    [+] Хорошо масштабируется
    [+] Тонна батареек
    [+] Удобно девелопить и весело деплоить
    [+] Дружит с кешами для нагрузок
    [+] Всегда найдёте разработчика
    Ответ написан