2016-12-25 44 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')