передача записей базы данных django в сообщения в api line messenger (linebot)

#python #django #bots #chatbot

Вопрос:

я хотел бы, чтобы бот линии отправлял все классы, хранящиеся в базе данных, в определенный день, в зависимости от ввода пользователя, через line messenger.

например,пользователь вводит «привет», бот линии отвечает «привет», пользователь вводит «понедельник», бот линии отправляет расписание занятий на понедельник, пользователь вводит «список учащихся(имя преподавателя)», бот линии отправляет всех учащихся в списке этого преподавателя

до сих пор я могу получать эхо, бот линии также хранит пользовательские данные в базе данных модели.

бот может различать типы сообщений (например, «текст», «изображение» и т. Д.).

все, что я, кажется, делаю, останавливает отправку основных сообщений.

Как лучше всего написать циклы, необходимые для получения желаемого ответа?

Я надеялся использовать информацию таким образом и каким-то образом передать ее в сообщение

   data =  Lessons.objects.all().filter(
   headed_by__name="Tutor Name").filter(day__icontains="
   Monday")
 

ниже не работает и останавливает работу остальных функций elif.

 elif event.message.type=="text" | event.message.text=="Monday" :
    message.append(TextSendMessage(text='Monday? Coming 
    right up'))
    line_bot_api.reply_message(event.reply_token,message)
 

и это код, который я использую для получения сообщений в настоящее время

 @csrf_exempt
def callback(request):
if request.method == "POST":
    message=[]
    
signature=request.META['HTTP_X_LINE_SIGNATURE']
    body=request.body.decode('utf-8')

    
 message.append(TextSendMessage(text=str(body)))
    try:
        events = parser.parse(body,signature)
    except InvalidSignatureError:
        return HttpResponseForbidden()
    except LineBotApiError:
        return HttpResponseBadRequest()
    
    for event in events:
        if isinstance(event, MessageEvent):
           
        print(event.message)
            
            if event.message.type=="text":
                
                message.append(TextSendMessage
                (text='Hello,nhow 
                 can I help you today?'))                    
                line_bot_api.reply_message(
                event.reply_token,message)

            elif event.message.type=="image":
        
                message.append(TextSendMessage(text='image 
                message'))
                line_bot_api.reply_message(event.reply_token, 
                message)

            elif event.message.type=="location":
                message.append(TextSendMessage(text='location 
                message'))
                line_bot_api.reply_message(event.reply_token,
                message)
    
            elif event.message.type=="video":
                
                message.append(TextSendMessage(text='video 
                message'))
                line_bot_api.reply_message(event.reply_token,
                message)

            elif event.message.type=="sticker":
                
                message.append(TextSendMessage(text='sticker 
                message'))
                line_bot_api.reply_message(event.reply_token,
                message)

            elif event.message.type=="audio":
                
                message.append(TextSendMessage(text='audio 
                message'))
                
                line_bot_api.reply_message(event.reply_token,
                message)

            elif event.message.type=="file":
                
                message.append(TextSendMessage(text='file 
                message'))
                
                line_bot_api.reply_message(event.reply_token,
                message)


    return HttpResponse()
else:
    return HttpResponseBadRequest
 

мои уроки model.py

 class Lessons(models.Model):
    student             = models.ForeignKey(Students, 
    on_delete=models.SET_NULL, null=True)  
    headed_by           = models.ForeignKey(Tutors, 
    on_delete=models.SET_NULL, null=True)
    day                 = models.CharField(max_length=4, 
    choices=DAY_CHOICES, null=True)
    start_time          = models.TimeField(null=True, blank=True)
    type                = models.CharField(max_length=7, 
    choices=TYPE_CHOICES, null=True)
    price_band          = models.CharField(max_length=7, 
    choices=PAYMENT_TYPE_CHOICES, blank=True, null=True)
    created             = models.DateTimeField(auto_now_add=True )