2017-02-23 1 views
1

제목과 사용자 목록을 요청하는 양식이 있습니다. 내 문제는 모든 사용자를 데이터베이스에 표시하지만 현재 인증 된 사용자는 제외하려는 것입니다. 여러 가지 옵션을 시도했지만 올바른 것은 아닙니다. 당신이 나를 도울 수? 고맙습니다 :동적 쿼리 세트를 양식으로

from django import forms 

class FormCal(forms.Form): 

titulo = forms.CharField(max_length=100) 

usuarios = forms.ModelMultipleChoiceField(queryset=User.objects.all(), widget=forms.CheckboxSelectMultiple(), required=False) 

답변

1

요청 개체는 양식 클래스의 __init__에 액세스 할 수 있습니다. 거기에있는 쿼리 세트를 동적으로 조정할 수 있습니다.

class FormCal(forms.Form): 

    titulo = forms.CharField(max_length=100) 

    def __init__(self, *args, **kwargs): 
     self.request = kwargs.pop('request', None) 
     super(FormCal, self).__init__(*args, **kwargs) 
     # exclude logged in user from queryset 
     usuarios_queryset = User.objects.all().exclude(username=self.request.user.username) 
     # add field to form 
     self.fields['usuarios'] = forms.ModelMultipleChoiceField(
      queryset=usuarios_queryset, 
      widget=forms.CheckboxSelectMultiple(), 
      required=False) 
관련 문제