• Стоит ли использовать Django при разработке относительно небольшого сайта?

    syschel
    @syschel
    freelance/python/django/backend
    php - голый, без фреймворков будет "лучше" и "проще". Не придётся искать VPS для хостинга, или хостинг площадки с поддержкой питона. Не будет столько же бубнов с залитием и запуском. Для описанного функционала, даже фреймворк не нужен, всё уложится в пол сотни пхп строк.
    Если же вопрос строится из того, что питон и джанго это единственные тебе знакомые язык с фреймворком. То бери их, потому что знакомое проще и быстрее.
    Если же волнуешься за место на хостинге, то сейчас уже не те времена, когда хостинг 100мб в месяц стоил около 1000 рублей. Сейчас гигами продают, за доллар. Тут больше вопрос с поддержкой питона, так как под него не каждый хостер продаст требуемое, а ВПС как правило дороже и "сложнее" для новичка.
    Ответ написан
  • Как понять, что ты готов к трудоустройству?

    syschel
    @syschel
    freelance/python/django/backend
    Сходите на собеседования, тогда и узнаете. Только в ИТ порой уровень очень сильно расплывчат от специфики компании и фронту работ. Где-то знания ваши могут оценить как уверенный мид, почти сеньёр. В другой компании скажут, что вы даже на среднего джуна не дотягиваете, с теми же знаниями.
    По этому, я бы попробовал походить по собеседованиям джунов/стажеров. Поработать месяца 3-4. А там уже будет проще и будет понимание своего уровня и главное "как и что нужно".
    Ответ написан
  • Как исправить ошибку AttributeError: __name__ Django?

    syschel
    @syschel
    freelance/python/django/backend
    1. Непонятно откуда у вас в /manage.py взялась функция main2(). Её там быть вообще не должно. Как и не желательно вам вообще править этот файл фреймворка.
    2. Судя по вашему комментарию
    Получается ситуация такая, я изначально начал делать вот этот django проект, все работало и запускалось, потом появилась другая задача и этот проект пришлось отложить на время, создал новый django проект под новую задачу, там все работало, задачу закрыл и вернулся к первому проекту, для теста решил запустить и вспомнить что нужно доделать, в итоге выдало вот эту ошибку, хотя до этого ничего не менял и все прекрасно запускалось

    И по путям к питону. Вы не дружите с виртуальным окружением и всё ставите/обновляете в глобальный питон. По этому у вас и пропадают/меняются модули, которые потом найти не может питон.
    Ответ написан
  • Как вывести название продукта?

    syschel
    @syschel
    freelance/python/django/backend
    {% for order in orders %}
    <ul>
        <li>
            {{ order.id }}
        </li>
        <li>
            {{ order.product }}
        </li>
        <li>
            {{ order.product.name }}
        </li>
    </ul>
    {% endfor %}
    Ответ написан
  • Как Url-шаблон передать в DetailView?

    syschel
    @syschel
    freelance/python/django/backend
    как мне pk передать в views.py используя DetailView&

    Оно само ловит pk/id, передавать не нужно, главное эту переменную указать в адресе.

    django 3+

    У вас кажется древняя документация по джанге, сейчас так урлы не строят.
    Правильнее было бы так:
    urlpatterns = [
        path('', views.index, name='index'),
        path('books/', views.BookListView.as_view(), name='books'),
        path('book/<int:pk>/', views.BookDetailView.as_view(), ),
        path('authors/', views.AuthorListView.as_view(), name='authors'),
        path('author/<int:pk>/', views.AuthorDetailView.as_view(), name='author-detail')
    ]
    Ответ написан
  • Яндекс.Практикум - 1 урок. Функции. Python-разработчик. В чем проблема???

    syschel
    @syschel
    freelance/python/django/backend
    И в чём проблема?
    for i in range(1, 11):
        print_friends_count(i)


    У тебя 1 друг
    У тебя 2 друга
    У тебя 3 друга
    У тебя 4 друга
    У тебя 5 друзей
    У тебя 6 друзей
    У тебя 7 друзей
    У тебя 8 друзей
    У тебя 9 друзей
    У тебя 10 друзей
    Ответ написан
  • Как написать модель для неограниченного числа картинок?

    syschel
    @syschel
    freelance/python/django/backend
    Изменю ответ Dr. Bacon, но он похожий:
    Элементарно же, другая модель с картинками. А в моделе карточки товара, указываем связь на модель картинок через ManyToManyField.

    Получается, загружать картинок можете сколько угодно.

    другая модель содержащая чисто картинки?

    Да, всего одно поле с картинкой.

    а как сделать так чтобы я скажем мог загружать на 1-н товар 5-ть картинок а на другой 2-е, и лимит был скажем 10

    Это уже в классе создания/обновления карточки товара, вы можете или просто брать массив из первых 10 объектов [:10]. Или в классе формы, делать проверку(проверить есть ли в базе уже карточки, сколько их, а так же посчитать сколько новых объектов пришло, сумму сложить и сравнить с лимитом) и ругаться, если объектов больше 10
    Ответ написан
  • Как установить модуль в Python?

    syschel
    @syschel
    freelance/python/django/backend
    Устанавливаю модуль telethon в питон. В командной строке прописал "pip install telethon", модуль загрузился, все вроде ок, но при импортировании модуля в код выдает ошибку:
    Traceback (most recent call last):
    File "main.py", line 4, in
    from telethon import TelegramClient
    ImportError: No module named 'telethon'

    Скорее всего вы установили модуль в виртуальное окружение, а файл свой запускаете вне этого виртуального окружения. Либо наоборот, файл из окружения, а установили в системное.
    Ещё как вариант, вы установили в питон 2, а файл запускаете с использованием питон 3. Или в обратную сторону.
    Покажите свою консоль, как именно и куда вы устанавливали, как именно и где вы запускали файл. Какая у вас операционная система и какие версии питона установлены в системе?

    а если перед всем кодом написать "pip install telethon" выдает:
    File "main.py", line 1
    pip install telethon
    ^
    SyntaxError: invalid syntax

    Естественно. Ибо pip в файл никто не прописывает, он отвечает за установку библиотек и вызывается только из консоли. Вы же зачем-то решили его вызвать из кода, на что он и ругается.

    аналогия
    Если по аналогиям, то вы решили куда-то поехать на машине. Залили бензин в бак, сели в салон на пассажирское место, а машина не едет. Пассажиры с заднего места вам говорят, что вы не туда сели. Тогда вы подумали и вместо того, чтобы пересесть за руль, решили бензина налить ещё и в бардачок. Тогда пассажиры замахали руками ещё сильнее. =)
    Ответ написан
  • Как задать новое значение циклу на Python?

    syschel
    @syschel
    freelance/python/django/backend
    Такое?
    for num in range(1, 9+1):
        print("num: {}, num/2: {}, num/3: {}".format(num, num/2, num/3))


    num: 1, num/2: 0.5, num/3: 0.3333333333333333
    num: 2, num/2: 1.0, num/3: 0.6666666666666666
    num: 3, num/2: 1.5, num/3: 1.0
    num: 4, num/2: 2.0, num/3: 1.3333333333333333
    num: 5, num/2: 2.5, num/3: 1.6666666666666667
    num: 6, num/2: 3.0, num/3: 2.0
    num: 7, num/2: 3.5, num/3: 2.3333333333333335
    num: 8, num/2: 4.0, num/3: 2.6666666666666665
    num: 9, num/2: 4.5, num/3: 3.0
    Ответ написан
  • Как отправить переменную в template Django?

    syschel
    @syschel
    freelance/python/django/backend
    Два варианта вижу я:
    1. Работать через context_processors. Создать свой класс процессора и добавить его в сеттинги. Тогда он будет на любой странице срабатывать. Внутри уже этого процессора обрабатывать урлы и так далее.
    context_processors.py
    from django.core.context_processors import request
    def sidebar(request):
        return {'context_auto': ...}

    settings.py
    TEMPLATES = [
        { ...,
            'OPTIONS': {
                'context_processors': [
                            "context_processors.sidebar",
                ],
            },
        },
    ]

    В любом шаблоне теперь будет доступна переменная "context_auto" вызывать можно {{ context_auto }} или передавать.

    2. Другой вариант. Использовать Inclusion tags, а не{% include "sidebar.html" %} и через него выводить свой sidebar. То есть вы создаёте функцию, в которой прописываете логику и загрузку sidebar.html а на странице уже инклудите именно функцию, а не html
    templatetags/inclusion_tag.py
    @register.inclusion_tag('sidebar.html', takes_context=True)
    def sidebar(context):
        return ...

    В main.html пишем
    {% sidebar %}
    Ответ написан
  • На чем написан сайт https://mstagency.ru?

    syschel
    @syschel
    freelance/python/django/backend
    Nuxt.js — Универсальные приложения на Vue.js
    https://ru.nuxtjs.org/
    Nuxt.js — это минималистичный фреймворк для создания приложений на Vue.js с серверным рендерингом, разделением кода, горячей заменой ...
    Ответ написан
  • Как правильно спроектировать базу данных для сайта?

    syschel
    @syschel
    freelance/python/django/backend
    Мне кажется вы немного перемудрили, излишне усложнив.
    Смотря на ваше "меню", как вижу таблицы в БД я:
    + pages = id, url(ЧПУ, если выводить в адресной строке хотим не ИД), title(заголовок), text(тело страницы, то есть текст)
    + news = id, url, date, title, short_text(этот текст выводим в списке новостей, он короткий), text(это уже на странице новости), image(картинка новости)
    + photo_category(если нужны альбомы для набора фотографий) = id, title, text(описание альбома), image(превьюшка альбома)
    + photos = id, name(если нужно название или описание), image(путь до файла), category(ссылка на photo_category, если нужны альбомы, иначе поле не создаём)
    + videos = id, video(ссылка на видео файл)
    + document_category = id, name
    + documents = id, category(ссылка на document_category ), ISBN(какой-то идентификатор документа вне бд), created(дата_тайм создания), update(дата_тайм обновления/изменения)

    Если изменений у документов несколько, в разные периоды, то я бы выносил поле update в отдельную таблицу
    + document_modifed = id, document(ссылка на документ), date, comment(комментарий иб изменениях, если он нужен)

    Ещё можно было бы добавить пользователей, пускай не на уровне пользователей сайта, а просто как список, то добавил бы. Чтобы указывать автора документа, автора изменений документа(если это нужно отслеживать).

    Поля category в таблице photos и document_category , у меня подразумевают, что категория у них может быть выбрана одна из, а не множество из. Если нужно именно множественный, то да, создавать отдельную таблицу и указывать там связи
    Я сделал специально независимые таблицы "категорий", так как скорее всего они и будут независимыми, не пересекающимися. Тогда при создании под объекта, можно выбирать из списка категории только его типа, а не копаться во всех категориях скопом. То есть, создавая запись об документе, не надо выбирать среди "фоточки с корпаратива 2018", "протяжные валы", "зарплаты", "отмечаем юбилей", "отчёты".
    Ответ написан
  • Django - Как сделать тестирование (вопросник) с вариантами ответов и как их хранить?

    syschel
    @syschel
    freelance/python/django/backend
    models.py
    class Test(models.Model):
        question = models.CharField('Текст вопроса', max_length=150)
        answer = models.BooleanField('Ответы', default=False) # Да/Нет (тут храним правильный ответ)
    
    class ResultTests(models.Model):
        test = models.ForeignKey(Test, on_delete=models.CASCADE)
        user = models.ForeignKey(User, on_delete=models.CASCADE)
        result = models.BooleanField('Результат', default=False) # true если ответ был верный

    При создании вопросов в админке, сразу указываете какой ответ верный, но выводить пользователям только "текст вопроса" и выбор Да/Нет Когда пользователь отвечает на вопросы, проверять равен ли результат поля answer с тем что выбрал пользователь. В модели ResultTests создаём новый объект, передав туда текущего пользователя, текущий вопрос и результат ответа (true - если ответил верно).
    Ответ написан
  • Какой скрипт добавляет вирус в Wordpress?

    syschel
    @syschel
    freelance/python/django/backend
    Если на сервере нет антивируса, минимум можно отследить по дате изменения папок/файлов. Больше уже логи вебсервера/консоли/фтп/ssh.
    Ответ написан
  • Как так сделать?

    syschel
    @syschel
    freelance/python/django/backend
    То что у вас на картинке, это разметка текста, по сути html. Конкретно же в Дискорде используется язык разметки Markdown.
    Картиночки "смайликов" перед текстом, называются emoji (эмоджи).

    К Питону или ДжаваСкрипту это всё отношение не имеет. Так как вам нужно сначала создать текстовое сообщение, сверстать его. А потом уже отправлять любым удобным вам способом.
    Ответ написан
  • Как войти в админку на кмс jQuery?

    syschel
    @syschel
    freelance/python/django/backend
    jQuery это не CMS, это даже не фреймворк, это библиотек для облегчения работы с JavaScript. У библиотеки нет никакой админки. Она может использоваться в какой-то из CMS и даже во фреймворке, но не является ни тем ни другим.
    Путь к админ панелям на всех ЦМС разный, как правило есть небольшой набор "стандартных" путей и чаще всего он встречается у разных сайтов, но не всегда. К примеру /admin или /administrator. Не редко владельцы своих сайтов, изменяют стандартный путь на свой или вообще отключают доступ к панели администратора.
    Ответ написан
  • Какой класс дать блоку?

    syschel
    @syschel
    freelance/python/django/backend
    Может всётаки разговор не про класс, а название тега, отвечающего за блок доп информации, по правилам HTML5?
    <aside>
    Ответ написан
  • Как быстро перенести магазин на другой хостинг?

    syschel
    @syschel
    freelance/python/django/backend
    Вы же домен не меняете, только хостинг?
    Почему после переноса, на старом сервере на стороне бэкграунда не указать использование базы данных не локально, а с нового сервера? В итоге база данных одна, сайт лежит в "двух" местах. Через сутки, как все ДНС обновятся, убираете всё со старого хостера.
    Как правило к серверу базы данных у хостера, можно обращаться не только по localhost, но и по стороннему(внешнему) адресу.
    Ответ написан
  • Разница между сайтом "блог" и "новостным" сайтом?

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

    Какие модули, библиотеки используются для создания сайта новостей в Django?
    Какие модули, библиотеки используются для создания сайта блог в Django?
    Если вас интересуют "модули и библиотеки", то это нужно смотреть в сторону готовых ЦМС. Джанго это всётаки фреймворк, где подразумевается собственноручное написание с использованием функционала фреймворка, а не использование сторонних "модулей и библиотек".

    За googlи! - гуглил четкого ответа нет!
    Зачем Django когда есть Wordpress - ответ: потому что Python!
    Если не корректно задан вопрос - буду рад если кто то поправит, но суть вопроса думаю все равно понятна.
    Если у вас "академический" интерес к Джанге, то советую на ближайшие пол года забыть о таких вещах как "готовые модули и библиотеки". Ладно там Pillow для работой с картинками или requests для работы с запросами к другим сервисам. Но вот функционал "блога"/"новостей", это всё делается инструментами джанги. Авторизация, админка, контент, поиск и так далее.

    исторически сложилось что Python изучается как основной язык программирования, да и задача не состоит в быстром запуске проекта, основной упор нацелен на его качестве, к слову "WStanley", а что касается удобства на Django, уже появился Wagtail CMS
    Ответ выше, для изучения питона и его фреймворка Джанго, не нужны вам готовые цмс, библиотеки и модули. Изучите внимательно фреймворк, он всё реализует своим функционалом.
    Ответ написан
  • Карьера в webdev?

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