我正試圖為所有剛剛創建的新警報發送電子郵件警報。我已經嘗試了
last_alert = Alert.objects.filter(kiosk=kiosk).last()
但這只得到了最后一個警報,而且它一直觸發同一個警報。有可能同時觸發3個警報。我正試圖實作一個標志,以了解警報是否已經被發送。我可能在這里使用了最新的錯誤。
last_alert = Alert.objects.filter(kiosk=kiosk).latest('pk'/span>)
if last_alert.created_on:
alert_status = HTTP_208_ALREADY_REPORTED
send_alert_email = False[/span
else:
alert_status = HTTP_201_CREATED
send_alert_email = True: alert_status = HTTP_201_CREATED
last_alert.created_on = datetime.now(last_alert.kiosk.location.timezone)
Alert.create(kiosk=kiosk, created_on=datetime.now(last_alert.kiosk.location.timezone))
last_alert.save()
# Get Timezone aware date and time[/span]。
current_dt = datetime.now().astimezone(kiosk.location.timezone)
current_time = current_dt.strftime('%I:%M%p')
current_date = current_dt.strftime('%m/%d/%Y')
email_props2 = {
'method': 'EMAIL',
'email': '[email protected]',
'data': {
'設施': last_alert.kiosk.location.name。
'description': last_alert.description。
'pk': last_alert.pk。
'time': current_time,
'date': current_date,
'kioskName': kiosk.name,
'alert_type_display': last_alert.alert_type_display
}
}
if send_alert_email:
_send_email(
[email_props2['email']]。
{'data': email_props2['data']}。
alert_template_id
)
也許我在處理這個問題時,用的是錯誤的標志。非常感謝您的幫助。
提前感謝
uj5u.com熱心網友回復:
我有一個解決方案。我在Alert模型中添加了一個處理過的欄位,默認為False。然后用processed=False欄位過濾所有Alert。回圈瀏覽所有的警報,如果 processed=False,就發送一封郵件,然后設定 processed=True。
last_alert = Alert.objects.filter(kiosk=kiosk, processed=False)
# Get Timezone aware date and time(獲取時間區間)。
for alert in last_alert:
if alert.processed == False:
current_dt = datetime.now().astimezone(kiosk.location.timezone)
current_time = current_dt.strftime('%I:%M%p')
current_date = current_dt.strftime('%m/%d/%Y')
email_props2 = {
'method': 'EMAIL',
'email': '[email protected]',
'data': {
'設施': alert.kiosk.location.name。
'description': alert.description,
'pk': alert.pk。
'time': current_time,
'date': current_date,
'kioskName': kiosk.name,
'alert_type_display': alert.alert_type_display
}
}
# 直接發送,伙計。
_send_email(
[email_props2['email']]。
{'data': email_props2['data']}。
alert_template_id
)
alert.processed = True True
alert.save()
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/329354.html
標籤:
