Где правильное место для размещения повторяющейся функции в 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
и импортировать ее в модели и представлениях.