Django中Twilio的表单验证发送短信

Django中Twilio的表单验证发送短信

问题描述:

我试图在DetailView Django页面中设置Twilio集成。他们查看详细的查看页面,并可以通过POST方法请求预订。预订后,我想发送短信给预订的老板,在我的情况下是老师。Django中Twilio的表单验证发送短信

forms.py

from django.core.validators import RegexValidator 
class BookingForm(forms.Form): 
    phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', message="Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed.") 
    Phone = forms.CharField(max_length=15,validators=[phone_regex],label='Phone') 

views.py

def post(self,request,**kwargs): 
    form = BookingForm(self.request.POST) 
    account_sid = "xxx" 
    auth_token = "xxx" 
    teacher = Teacher.objects.get(id=self.kwargs['pk']) 
    client = Client(account_sid, auth_token) 
    user_phone = form['Phone'].value 
    #user_phone = self.request.POST['Phone'] 
    client.messages.create(
     to=teacher.phone_number, 
     from_="+442033225719", 
     body="You have a new student" + 
      " Student phone number:{}".format(user_phone)) 

而且我有一个模板的形式,其中有1个输入 - 电话号码。

然而,当我提交表单,我收到以下短信:

学生电话号码:<bound method BoundField.value of <django.forms.boundfield.Boundfield object at 0x104e5f0b8>>

需要注意的是,如果我不使用形式,而是有一个简单的USER_PHONE =自.request.POST ['Phone']而不是使用form.is_valid()验证表单,一切工作正常。

你需要验证表单,然后得到cleaned_data

form = BookingForm(self.request.POST) 
form.is_valid() 
user_phone = form.cleaned_data['Phone']