我想弄清楚如何在我的項目中避免依賴注入。應用程序目錄中有一個文件notifications.py
。如何避免Django中的依賴注入?
文件notifications.py
包含向管理員和用戶發送電子郵件的方法。要獲得管理員電子郵件,我需要檢查SystemData
模型的對象。但在模型中,我使用通知。
模式
class SystemData(models.Model):
admin_alerts_email = models.EmailField(verbose_name=u'Emailová adresa admina')
contact_us_email = models.EmailField(verbose_name=u'Adresa kontaktujte nás')
waiting_threshold = models.PositiveSmallIntegerField(verbose_name=u'Maximálny počet minút čakania')
class SomeModel(models.Model):
....
def save(...):
notifications.send_message_to_admin('message')
notifications.py
from django.core.mail import EmailMessage
from models import SystemData
def send_message_to_admin(message):
mail = EmailMessage(subject, message, to=[SystemData.objects.all().first().admin_email])
mail.send()
返回Django的,它無法導入SystemData
。
你知道該怎麼辦?
編輯:
stacktrace
你可以粘貼stacktrace嗎?這可能就像在導入行用.models替換模型一樣簡單 – cdvv7788
我在問題底部添加了堆棧跟蹤 –
我試圖從模型中將SystemData替換爲從.models導入SystemData並且它沒有幫助。 。 –