У меня есть django веб-приложение, которое принимает записи номера телефона. Мне нужно отправить смс-сообщение на последнюю запись номера телефона в базе данных, каждый раз, когда добавляется новая запись, я хочу, чтобы этот номер получал текстовое сообщение. Как я могу включить что-то вроде twilio в представление insert_todo_item, чтобы каждый раз, когда добавлялся новый номер телефона, он получал сообщение?
Вот что я попробовал:
views.py
from django.shortcuts import render, redirect
from django.http import HttpResponse, HttpRequest
from django.core.exceptions import ValidationError
from .models import Todo
from .forms import Post
from twilio.rest import Client
# Create your views here.
# codes required by twilio. These are specific to the twilio account being used.
account_sid = '...'
auth_token = '...'
sender = '+123456789'
def list_todo_items(request):
context = {
'todo_list' : Todo.objects.all(),
'count': Todo.objects.count()
}
# count = Todo.objects.count()
# context2 = {'count': count}
# context = {'count': Todo.objects.count()}
# count = Todo.objects.count()
return render(request, 'index.html', context)
# use twilio to send message to the inputted number!
# probably don't need to access the database at all :)
# want to send to todo.objects.
def insert_todo_item(request: HttpRequest):
todo = Todo(content=request.POST['content'])
try:
todo.full_clean()
except ValidationError:
return redirect('/main/list/')
todo.save()
reciever = todo
client.messages.create(to=receiver, from_=sender, body=text)
return redirect('/main/list/')
def delete_todo_item(request,todo_id):
todo_to_delete = Todo.objects.get(id=todo_id)
todo_to_delete.delete()
return redirect('/main/list/')
models.py
class Todo(models.Model):
phone_regex = RegexValidator(
regex= r'^\+?1?\d{9,15}$',
message= ("Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed."),
code='invalid_regex',
)
content = models.CharField(max_length=17, validators=[phone_regex], blank=False)