DAY17 专案进度按钮功能实现-1

if event.postback.data[0] == "专" and event.postback.data[1] == '案':
            line_bot_api.reply_message(
                event.reply_token,
                Report().content()  #回复「专案进度」按钮样板讯息
                # TextSendMessage(text=Report().content()) 
            )
if event.postback.data[0] == "回" and event.postback.data[1] == '报':
    uid=event.source.user_id
    user=User_Info.objects.get(uid=uid)
    line_bot_api.reply_message(
        event.reply_token,
        TextSendMessage(text="[昨日完成进度]:"+user.yes_project+"\n\n"+"[今日规划进度]:"+user.tod_project) 
    )
if event.postback.data[0] == "修" and event.postback.data[1] == '改':
    uid=event.source.user_id
    user=User_Info.objects.get(uid=uid)
    line_bot_api.reply_message(
        event.reply_token,
        TextSendMessage(text="请输入\n"+"[昨日完成进度]:") 
    )
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,
            Root_Team().content()
        )
    else :
        line_bot_api.reply_message(
            event.reply_token,
            TextSendMessage(text="你不是管理员无法使用") 
        )
if event.postback.data[:5] == "Root:":
    choose=str(event.postback.data[5:]) #选择要的组别名称
    # user=User_Info.objects.filter(team=choose)
    all=''
    for data in User_Info.objects.filter(team=choose):
        if data.update_project == "":
            data.update_project="[本日尚未回报进度]"
        message="姓名:"+data.name+"\n"+"组别:"+data.team+"\n"+"[昨日完成进度]:"+data.yes_project+"\n"+"[今日规划进度]:"+data.tod_project+"\n"+"[专案进度更新时间]:"+data.update_project+"\n\n"
        all=all+message
    line_bot_api.reply_message(
    event.reply_token,
    TextSendMessage(text=all) 
    )

回传QuerySet的方法

  • all()
    all() 是最容易的查询语法,可以将所有的物件都列出来。
    Ex: Coffee.objects.all()

  • filter(**kwargs) / exclude(**kwargs)
    filter(**kwargs)可以根据代入的参数来决定输出的物件。
    反之,exclude(**kwargs)是输出排除输入的参数以外的物件。
    Ex: Coffee.objects.filter(name='latte')
    => 列出名称为latte的 物件

  • order_by()
    将搜寻出来的QuerySet利用order_by的顺序再次排序。
    EX: Coffee.objects.filter(country__name='Africa').order_by('-price', 'name') 将Coffee的Object利用filter搜寻出来之後,再将此QuerySet按照price降幂,name升幂的方式排序
    distinct()
    当搜寻多个Table时,有可能会出现重复的资料,利用 distinct() 即可以消除重复的项目。


今天的歌曲是 周杰伦-阳光宅男 Sunshine Nerd
https://www.youtube.com/watch?v=qQ7g1tfEGFc&list=PLFl6Na2uUoOZBEhBtQ_jeGA4P1V20JvpW&index=16&ab_channel=%E5%91%A8%E6%9D%B0%E5%80%ABJayChou


<<:  Singleton 单例模式

>>:  D30 第十七周 (回忆篇)

Day-8 Divide-and-Conquer-3 : 二分搜寻法, 费波那契数列, Strassen’s演算法

二分搜寻法(Binary Search) 前提,在一个已经排序完成的A阵列中 Divide : 元素...

[Day 17] 资料产品生命周期管理-辅助决策

如同前面所说,资料模型需要运用到实际环境中才会发挥价值 Initiation 延续之前模型的初始条件...

交易策略 - Backtrader

以下内容皆参考 Backtrader 官网 之前介绍了 shioaji 如何取得资料, 下单,也介绍...

Android studio 实现选项卡功能

实现所需要的class跟xml 1.本身的activity 配戴着xml 2.需要几个选项 就new...

HITCON HackDoor之骇入办公室初体验

这是HITCON与中华电信合作的密室逃脱,在此附上资讯与报名连结https://hitcon.org...