• Как вывести список активностей по связанным моделям данных?

    @immaculate
    NogerbekNurzhan простите и вы меня, но я ведь не бесплатная техподдержка. :) Может быть это у меня такой менталитет, но я прежде всего пытаюсь найти решение сам. Читаю код, пробую различные варианты, следующий шаг - Google/StackOverflow (поиск уже готовых ответов). В 99% случаев это помогает.

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

    Но вы сейчас этот этап пытаетесь пропустить, что не идет на пользу ни вам, ни мне.
  • Ведете ли вы документацию для проектируемого сайта или приложения?

    @immaculate
    Писать комментарии, которые документируют неочевидные моменты, при этом избегая документирования очевидных — редкий талант. Чаще всего приходится видеть комментарии вида:
    // Увеличить значение i на единицу
    i++;


    Что 20 лет назад, что сейчас, такие комментарии превалируют в любом увиденном коде.

    Вообще, была раньше тема literate programming, но почему-то широкого распространения не получила. Хотя это единственное, мне кажется, что может решить данную проблему.
  • Почему "Не рекомендуется использовать почтовый сервер вашего провайдера для отправки почты от вашего имени на Яндексе"?

    @immaculate
    Нет, говорится именно об отправке писем через SMTP. IMAP используется лишь для чтения почты, и по нему прочитать почту можно только с сервера Яндекс.

    А вот отправлять почту можно через любой SMTP сервер, протокол позволяет, просто в связи с ужесточившейся борьбой со спамом в последние 10-15 лет, скорее всего письмо полетит в спам у получателя, так как письмо с отправителем someone@yandex.ru, но отправленное через сервер smtp.homeprovider.ru, многими спам-фильтрами будет воспринято как явный признак спама.
  • Как вывести список активностей по связанным моделям данных?

    @immaculate
    NogerbekNurzhan, я так понимаю, что это у вас учебный проект. Неотъемлемая часть учебы — это пройтись по собственным граблям. Свой опыт ничто не заменит. Поэтому пробуйте то, что вам нравится. Если подойдет — отлично. Не подойдет, вы получите бесценный опыт понимания того, на что надо было обращать внимание с самого начала, и как потом исправлять сложные ошибки, переходить с одного приложения на другое, мигрировать данные. Это даст в плане развития намного больше, чем разработка по готовым рецептам. Хотя это и сложнее.

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

    @immaculate
    На очень беглый взгляд выглядит нормально. Но я посмотрел его около 30 секунд, так как уже ложусь спать. :)
  • Как освободить место в /boot разделе?

    @immaculate
    Я бы рискнул руками удалить какое-нибудь из неиспользуемых ядер, чтобы освободилось место для apt-get -f install. По идее, это не должно помешать потом сработать autoremove. Но предупреждаю: я этого не пробовал. В принципе, ничего страшного не должно случиться, если четко понимать, что делать.

    А что за сайт такой, что его нельзя перезагрузить?
  • Почему python не может импортировать модуль smb?

    @immaculate
    Я бы здесь открыл issue: https://github.com/CoreSecurity/impacket/issues
    Или в баг-трекере ArchLinux, а они уже, возможно, исправят или отрепортят в upstream.

    На Git я вижу, что проект написан для Python 2. То есть, ошибка скорее в ArchLinux - данный пакет не совместим с Python 3.
  • Почему python не может импортировать модуль smb?

    @immaculate
    Ну, от ошибок никто не застрахован. Видимо не до конца портировали.
  • Как вывести список активностей по связанным моделям данных?

    @immaculate
    Ну и без более подробного понимания контекста тоже непонятно. Если это проект, в котором 10 задач и десятки-сотни комментариев, то подойдет одно, или даже самописный велосипед (впрочем, раз вы задаете такой вопрос, вам еще рано писать велосипеды).

    Если десятки тысяч, то решение уже нужно другое. Если сотни тысяч-миллионы, то мало что из готового подойдет, разве что как отправная точка.
  • Как вывести список активностей по связанным моделям данных?

    @immaculate
    Ни с чем из перечисленного не работал, изобретал свой велосипед, но делал это еще до того, как появился djangopackages и данные пакеты. Если бы делал сейчас, то смотрел бы насколько хорошо поддерживается пакет, насколько мне нравится код. Все исходники на GitHub, хорошо видно, сколько pull request'ов, насколько оперативно исправляются ошибки, и вообще, какой код.
  • Что делать если команда говнокодит?

    @immaculate
    Ну, он пишет в резюме, что не совсем свежий выпускник, якобы он уже несколько лет занимается разработкой, даже портфолио разработанных сайтов есть. Что поставило меня в тупик, т.к. я явно вижу в коде отсутствие способности сделать даже простейший сайт и вообще отсутствие здравого смысла у человека. Например, в проекте на Django, он начал свою часть реализовывать с использованием шаблонов Jinja. Потому что ему так удобнее, как он объяснил менеджеру. В итоге, и так неработающий проект получил еще две разных системы шаблонов и без пол-литры не понять где какой язык шаблонов используется.

    Да там можно полдня перечислять. Я тоже день попытался это оживить и сказал: все надо переписывать, потому что оно не работает и рефакторить его сложнее, чем писать заново. Потому что не работала вообще ни одна часть сайта. Десятки тычяч строк мусорного кода, которые не делали ничего и вываливались на каждом шагу с загадочными исключениями.

    Руководство меня не поняло (не технические люди), и мы расстались в самом начале, не на самых дружественных нотах. Вообще, это долгая история, просто вспомнилось, так как меня в тупик ставят такие люди и такие проекты - откуда они берутся вообще.
  • Что делать если команда говнокодит?

    @immaculate
    sisn Ну, возможно. Ровно месяц назад я точно так же отказался от участия в проекте, который мне кажется довольно непростым, потому что там за полгода существования проекта наговнокодили какого-то неработающего монстра. Но это еще вопрос некомпетентного менеджмента, который нанял некомпетентных людей и не смог вовремя остановить их.

    Я потом ради интереса глянул резюме одного из участников. Выпускник МГУ, сертификаты о прохождении серьезных курсов на Курсере, ИИ, все дела. Но блин, то, что он написал:
    а) не работает вообще
    б) адский треш нарушающий все законы здравого смысла
  • Как отсортировать записи модели данных на основе данных других связанных моделей?

    @immaculate
    Как вариант, можно при создании/изменении комментария через сигналы или метод save обновлять timestamp в Project. Это смахивает на костыль, но не такой уж страшный костыль.

    Думаю, что задача решается и через ORM, но это отнимет у меня слишком много времени, которого сегодня нет.
  • Как загрузить нужные библиотеки в сервер джанго?

    @immaculate
    Значит вы устанавливали не активируя virtualenv. Правильно не переносить в таком случае, так как в /usr/lib/python3.5/site-packages — системные пакеты и вы нарушили их целостность, а активировать virtualenv и установить все в нем.
  • Как отсортировать записи модели данных на основе данных других связанных моделей?

    @immaculate
    Удалил свой ответ, так как он некорректный, а корректное решение в данный момент предложить не могу - слишком много времени требуется для ответа.
  • Разработка web-сервисов – LAMP (Python/Django) vs. MEAN (Node.js)? Или что-то другое?

    @immaculate
    А что понимается под web-сервисом? По-моему, любой веб-сервис еще можно сделать на Python.
  • Best practies? Две независимые модели для пользователя и админа, Django 1.11.x?

    @immaculate
    Мне тяжело ответить на каждый ваш вопрос, у меня своя работа есть и ее много.

    Сначала надо сделать makemigrations для новой модели

    Все старые миграции из django_migrations надо удалить, если есть (если новый проект, то эта таблица должна быть и так пустой, если надо сохранять имеющиеся данные, то это очень сложная задача и заочно в комментариях я ее решать не готов и нет времени)
  • Best practies? Две независимые модели для пользователя и админа, Django 1.11.x?

    @immaculate
    Только заметил, что унаследовался от AbstractBaseUser. Уже не вспомню, почему так сделал. Логичнее было бы от AbstractUser, т.к. я его по большей части переписал, получается - лишняя работа.
  • Best practies? Две независимые модели для пользователя и админа, Django 1.11.x?

    @immaculate
    Вот пример из реального приложения:
    class Profile(AbstractBaseUser, PermissionsMixin):
        username = models.CharField('username', max_length=50, unique=True,
                                    help_text='Required. 50 characters or fewer. Letters, digits and ' 
                                              '@/./+/-/_ only.',
                                    validators=[
                                        validators.RegexValidator(r'^[\w.@+-]+$',
                                                                  'Enter a valid username. ' 
                                                                  'This value may contain only letters, numbers '
                                                                  'and @/./+/-/_ characters.')
                                    ],
                                    error_messages={
                                        'unique': "A user with that username already exists.",
                                    })
        first_name = models.CharField(max_length=30, blank=True)
        last_name = models.CharField(max_length=30, blank=True)
        email = models.EmailField('email address', blank=True)
        is_staff = models.BooleanField(
            'staff status',
            default=False,
            help_text='Designates whether the user can log into this admin site.',
        )
        is_active = models.BooleanField(
            'active',
            default=True,
            help_text='Designates whether this user should be treated as active. '
                      'Unselect this instead of deleting accounts.'
        )
        date_joined = models.DateTimeField('date joined', default=timezone.now)
    
        picture = models.ImageField(upload_to="uploads/profile/", null=True, blank=True)
    
        objects = UserManager()
    
        USERNAME_FIELD = 'username'
        REQUIRED_FIELDS = ['email']
    
        def __str__(self):
            return self.username
    
        def get_short_name(self):
            return self.first_name
    
        def get_full_name(self):
            return '{0.first_name} {0.last_name}'.format(self)


    Как называется модель не имеет значение, лишь бы не было конфликта имен (в Python коде или в базе). Можно и User назвать. Можно ИмяПроектаUser. Это вопрос личных предпочтений. У меня во многих проектах исторически называется Profile (потому что начинались они, когда расширять стандартную модель было нельзя, затем объединил модели, но название осталось прежним).
  • Best practies? Две независимые модели для пользователя и админа, Django 1.11.x?

    @immaculate
    django-braces уже большей частью не нужен: большая часть его функциональности уже есть в core Django в модуле django.contrib.auth.mixins.