iT邦幫忙

2021 iThome 鐵人賽

DAY 20
0
自我挑戰組

Line Bot 以python及Django建構系列 第 20

DAY20 本日尚未簽到、時刻表按鈕實現

  • 分享至 

  • xImage
  •  
#本日尚未簽到的按鈕
if event.postback.data[0] == "本" and event.postback.data[1] == '日':
    all=""
    for data in User_Info.objects.filter(date=""):
        message="姓名:"+data.name+"\n"+"組別:"+data.team+"\n\n"
        all=all+message
    line_bot_api.reply_message(
    event.reply_token,
    TextSendMessage(text="[本日尚未簽到的使用者]\n"+all) 
    )
#時刻表的按鈕
if event.postback.data[0] == "時" and event.postback.data[1] == '刻':
    uid=event.source.user_id
    user=User_Info.objects.get(uid=uid)
    if user.root =="1":
        line_bot_api.reply_message(
        event.reply_token,
        Schedule().content() #回復「時刻表」按鈕樣板訊息
        )
    else :
        line_bot_api.reply_message(
            event.reply_token,
            TextSendMessage(text="你不是管理員無法使用") 
        )

本日尚未簽到:第四行程式碼for data in User_Info.objects.filter(date=""):會用迴圈判斷所有資料庫的使用者的date欄位,若date欄位為空值,則第五行message="姓名:"+data.name+"\n"+"組別:"+data.team+"\n\n"便會用message將使用者的姓名和組別以list方式儲存,第六行all=all+message則是把所有使用者date欄位為空值的人加到all這個list裡面,最後將all印出本日尚未簽到人員。

時刻表:當使用者按下時刻表按鈕時,第十三行uid=event.source.user_id會去找到該使用者的uid,第十四行user=User_Info.objects.get(uid=uid)會去找到資料庫中符合這個使用者的欄位,並判斷root的值是否為1,如果為1代表擁有管理員權限,否則就不是管理員並印出"你不是管理員無法使用"。


今天的歌曲是 周杰倫-說好的幸福呢 The Promised Love
https://www.youtube.com/watch?v=mLFhTFiX0uM&list=PLFl6Na2uUoOZBEhBtQ_jeGA4P1V20JvpW&index=19&ab_channel=%E5%91%A8%E6%9D%B0%E5%80%ABJayChou


上一篇
DAY19 專案進度按鈕功能實現-3
下一篇
DAY21 呼叫時刻表樣板
系列文
Line Bot 以python及Django建構30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言