我希望能够使用模型实例的组/用户手动发送 SMS/电子邮件通知。假设模型如下所示:
class Memo(models.Model):
title = models.CharField(max_length=100)
receiver = models.ManyToManyField(EmployeeType, related_name='memos_receiver')
我将对象实例传递给视图:
path('<int:pk>/notify', NotificationView.as_view(), name='memos-notify'),
表单和视图是我遇到麻烦的地方。我想我应该能够在视图中传递表单初始字段:
class NotificationView(FormView):
template_name = 'memos/notification_form.html'
form_class = MemoNotificationForm
success_url = reverse_lazy('overview')
def get_initial(self):
initial = super(NotificationView, self).get_initial()
memo = Memo.objects.filter(id=id)
initial['receiving_groups'] = memo.receiver.all()
return initial
表格如下所示:
class MemoNotificationForm(forms.Form):
class Meta:
fields = [
'receiving_groups'
]
receiving_groups = forms.MultipleChoiceField(
required=False,
widget=forms.CheckboxSelectMultiple)
*注意:receiving_groups
将是收到通知的人。一旦表格有效,我将应用一种send_sms
方法发送它。
TypeError: int() 参数必须是字符串、类似字节的对象或数字,而不是“builtin_function_or_method”
我需要在表单中初始化查询集吗?如果有人能清楚地了解这里的原因和方式,将不胜感激。谢谢!