iT邦幫忙

2021 iThome 鐵人賽

DAY 22
0
自我挑戰組

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

DAY22 時刻表選取組別功能實現

  • 分享至 

  • xImage
  •  
if event.postback.data[:9] == "Schedule:":
    choose=str(event.postback.data[9:]) #選擇 時刻表 要的查看組別名稱
    list=[]
    for data in User_Info.objects.filter(team=choose):
        new_body={
                "type": "button",
                "action": {
                "type": "postback",
                "label": data.name,
                "data": "Name="+data.name
                },
                "margin": "sm",
                "color": "#0066ff",
                "style": "primary"
            }
        list.append(dict(new_body))                
    line_bot_api.reply_message(
        event.reply_token,
        Name().content(list)
    )
if event.postback.data[:5] == "Name=":#選擇時刻表_姓名後列出項目
    data=User_Info.objects.get(name=event.postback.data[5:])
    if data.update_project == "":
        data.update_project="[本日尚未回報進度]"
    line_bot_api.reply_message(
        event.reply_token,
        TextSendMessage(text="姓名:"+data.name+"\n"+"[最新簽到時間]:"+data.date+"\n"+"[近期七天簽到時間]:"+data.date_day1+"\n")
    )

選擇要查看的組別後,便會以迴圈的方式來找到符合選取的組別for data in User_Info.objects.filter(team=choose): ,而new_body相當是一個使用者一個按鈕,
因為不用迴圈的話就無法根據有幾位使用者來生成剛好數量的按鈕,最後用 list.append(dict(new_body))把dict格式存到list裡面,將list回傳並呼叫樣板產生按鈕

點擊上方生成出來使用者的按鈕,if data.update_project == "":判斷使用者尚未回報進度,該欄位為空值將會把欄位儲存成[本日尚未回報進度],若不是空值將會印出使用者的姓名、最新簽到時間、近期七天簽到時間。


今天的歌曲是 周杰倫-一路向北 All the Way North
https://www.youtube.com/watch?v=L229QDxDakU&list=PLFl6Na2uUoOZBEhBtQ_jeGA4P1V20JvpW&index=21&ab_channel=%E5%91%A8%E6%9D%B0%E5%80%ABJayChou


上一篇
DAY21 呼叫時刻表樣板
下一篇
DAY23 model展示
系列文
Line Bot 以python及Django建構30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言