Где правильное место для размещения повторяющейся функции в Django

Я хочу сделать функцию, которая будет использоваться в разных частях моего приложения. Это функция для отправки уведомлений по электронной почте, что-то вроде:

def mail_notification():
    subject = 'New Product' 
    from_email = 'master.aligabra@gmail.com'
    to = 'ali.corretor.imoveis@gmail.com'
    html_content = render_to_string('email/new_message_product_client_email.html')
    msg = EmailMultiAlternatives(subject, html_content, from_email, [to])
    msg.content_subtype = "html"
    msg.send()

Мои сомнения в том, в View, signals.py, forms.py, Django имеет "правильное" место или находится там, где я предпочитаю?

Я рекомендую создать отдельное место для хранения общих функций. Вот моя структура проекта по умолчанию для Django

django-app/
    django-app/
        users/  # django application
            migrations/
            models.py
            views.py
            tests.py
            utils.py # Here I place helper functions related to User application
        common/  # folder with common functions for all django applications
            email.py # functions to work with email
            string.py # hepler functions to parse and modify strings 
            ...

Итак, я рекомендую поместить вашу функцию в common/email.py и импортировать ее в модели и представлениях.

Вернуться на верх