• Почему "Не рекомендуется использовать почтовый сервер вашего провайдера для отправки почты от вашего имени на Яндексе"?

    @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.
  • Best practies? Две независимые модели для пользователя и админа, Django 1.11.x?

    @immaculate
    Vikky Shostak это не будет нормально работать, потому что может сломаться во многих местах.
    Например, валидация пользователя может пройти в первый раз, но между сохранением в сессию, оплатой, и созданием реального пользователя, может зарегистрироваться другой пользователь с тем же именем и email. И что тут делать? Никакого разумного решения, кроме адских костылей не придумать.

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

    Я бы на первом этапе создавал пользователя в базе сразу, с флагом `is_active = False` (этот флаг - часть стандартного класса пользователя Django). Если оплата прошла успешно, то ставил бы `is_active = True`. Заодно потом и статистику легко посчитать по `is_active`.
  • Best practies? Две независимые модели для пользователя и админа, Django 1.11.x?

    @immaculate
    Вах, у вас талант находить сложные решения простых проблем или смотреть не в те места. Ссылка, которую вы прислали, это написание собственного AuthenticationBackend. То, что вам очевидно не нужно, да и вообще мало кому нужно, потому что AuthenticationBackend уже есть встроенный в Django, а также написаны сторонними авторами на все случаи жизни.

    django-allauth решает все вопросы аутентификации. Аутентификация через соц. сети - это лишь приятное дополнение, которым пользоваться не обязательно. Зато потом вы сможете добавить 2-3 строки в настройки и она у вас заработает.

    Что касается регистрации вместе с пожертвованием... Ну, просто сделать свою собственную форму регистрации, которая одновременно занимается и регистрацией пользователя и собиранием пожертвования. Первое что пришло в голову.

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

    Вы сильно тяготеете к усложнению всего. :)