как отфильтровать пользователя, созданного другим суперпользователем, чтобы он мог отправить уведомление - PullRequest
0 голосов
/ 26 марта 2020

в моем 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)

У меня есть четыре типа пользователей: администратор, начальник, персонал, студент

администратор создает начальника

смотритель создает сотрудников

персонал создает ученика

Теперь я хочу отправить уведомление так:

администратор отправляет уведомление начальнику

смотритель посылает уведомление их созданному персоналу

отмечает, что у одного начальника много сотрудников, и он может отправить уведомление своему единственному персоналу

Как я могу отфильтровать указанные c надзиратели, созданные сотрудниками?

...