Передача записей базы данных django в сообщения в рамках апи мессенджера line (linebot)
я бы хотел, чтобы linebot отправлял все классы, хранящиеся в базе данных, в определенный день, в зависимости от ввода пользователя, через line messenger.
e.g пользователь набирает "hello" linebot отвечает "hello" пользователь набирает "monday" linebot отправляет расписание занятий на понедельник пользователь набирает "studentlist(tutorname)" linebot отправляет всех студентов в списке этого репетитора
пока что я могу получать эхо, линейный бот хранит данные пользователя в базе данных модели также корректно.
бот может различать тип сообщения. (т.е. "текст", "изображение" и т.д.)
все, что я делаю, останавливает отправку основных сообщений.
Как лучше всего написать циклы, необходимые для получения желаемого ответа?
Я надеялся использовать информацию таким образом и передать ее каким-то образом в сообщение
data = Lessons.objects.all().filter(headed_by__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
my lessons 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 )