首页 > 解决方案 > 如何过滤由另一个超级用户创建的用户以便它可以发送通知

问题描述

在我的 forms.py

class NoticeFormWarden(forms.ModelForm):
    class Meta:
        model = Noticee
        fields = ('name','description','users','file',)

    def save(self,user):
        owner = user
        issue_date = datetime.datetime.now().strftime("%Y-%m-%d")
        name = self.cleaned_data['name']
        description = self.cleaned_data['description']
        users = self.cleaned_data['users']
        file = self.cleaned_data['file']

        Noticee.objects.create(name=name, description=description, users=users, file=file, owner=owner, issue_date=issue_date)

    def __init__(self, users, *args, **kwargs):
        super(NoticeFormWarden, self).__init__(*args, **kwargs)
        self.fields['users'].queryset = User.objects.filter(is_hostelstaff=True)
        self.fields['name'].widget.attrs['placeholder'] = ' Subject'
        self.fields['file'].widget.attrs['placeholder'] = ' Subject'
        self.fields['description'].widget.attrs['placeholder'] = 'write your msg here . . .'
        self.helper = FormHelper()
        self.helper.form_show_labels = False

在views.py中

def WardenCreateNotice(request):
    form = NoticeFormWarden(request.user, request.POST or None)
    if request.method == 'POST':
        if form.is_valid():
            print('Saved notice')
            form.save(request.user)
            form = NoticeFormWarden(request.user)
            return redirect("warden_view:notice-warden2")
    context = {
        'form': form,
        'user': request.user,
    }
    return render(request, 'warden_view/notice.html',context)

我有四种类型的用户:admin、warden、staff、student

管理员创建守望者

典狱长创建员工

员工创造学生

现在我想发送通知,以便:

管理员向监狱长发送通知

典狱长向他们创建的员工发送通知

请注意,一个监狱长有很多员工,它可以向唯一的员工发送通知

如何过滤特定的典狱长创建的员工?

标签: djangodjango-formsdjango-queryset

解决方案


推荐阅读