Customizing Django Form Based On Currently Logged In User
This is a part of my forms.py class SubjectForm(forms.ModelForm): title=forms.CharField(label='',widget=forms.TextInput(attrs={'maxlength':150,
Solution 1:
forms.py:
classSubjectForm(forms.ModelForm):
title=forms.CharField(label='',widget=forms.TextInput(attrs={'maxlength':150,
'placeholder':'Write here. . .'}))
body=forms.CharField(label='', widget=forms.Textarea(attrs={'placeholder':'Extend here. . .'}))
board=forms.ModelChoiceField(label='',queryset=Board.objects.all(), empty_label='Select Board')
def__init__(self, *args, **kwargs):
user = kwargs.pop('user', None)
super(SubjectForm, self).__init__(*args, **kwargs)
if user isnotNone:
self.fields['board'].queryset = Board.objects.filter(user=user)
classMeta:
model = Subject
fields = ('title','body','board')
views.py:
demo with CreateView:
classSubjectCreateView(CreateView):
form_class = SubjectForm
template_name = 'subject/create.html'
success_url = '/'defget_form_kwargs(self):
kwargs = super(SubjectCreateView, self).get_form_kwargs()
ifself.request.method == 'GET':
kwargs.update({
'user': self.request.user,
})
return kwargs
or
form = SubjectForm(**{'user': request.user})
Post a Comment for "Customizing Django Form Based On Currently Logged In User"