2016-12-25 50 views
2

因此,我有一個SMS應用程序與Django表單完美配合。我有一個sqlite表「員工」,每個員工有一個「dcare」,「管理員」或「娛樂」的關係。在我的表格中,我使用了一個單選按鈕來選擇其中一個關係,並將這些消息發送給這些員工......在那裏沒有問題。問題出在我將它從單選按鈕切換到多選部件時。基於表單選擇向每個組發送SMS

因此,我無法找到適當的語言/語法「對於選定的每個組,將SMS發送給該組中的每個人。」下面

enter image description here

def contact(request): 
    if not request.user.is_authenticated(): 
     return HttpResponseRedirect('/') 
    else: 
     if request.method == 'POST': 
      form = ContactForm(request.POST) 
      if form.is_valid(): 
       cd = form.cleaned_data 
       client = twilio.rest.TwilioRestClient('xxxx', 'xxxx') 

       recipients = employees.objects.filter(group__contains=cd['togroup']) 
       #check to see which group is selected 
       if cd['togroup'] != "everyone": 
        for recipient in recipients: 
        client.messages.create(body=cd['message'],to=recipient.phone_number, from_='+xx') 

       return HttpResponseRedirect('/contact/thanks/') 
      else: 
       #if "everyone" is selected, change recips to all 
       recipients = employees.objects.all() 
       for recipient in recipients: 
        client.messages.create(body=cd['message'], to=recipient.phone_number, from_='+xxxx') 
       return HttpResponseRedirect('/contact/thanks/') 
     else: 
      form = ContactForm() 
     return render(request, 'contact_form.html', {'form': 
form}) 

回答

1

假設cd['togroup']

Views.py例如返回選中的選項的陣列['dcare', 'recreation']。從你的流程(對於每組選擇,發送短信給該組中的每個人),我會這樣做:

for to_group in cd['togroup']: 
    recipients = employees.objects.filter(group=to_group) 
    for recipient in recipients: 
     client.messages.create(body=cd['message'],to=recipient.phone_number, from_='+xx')