Django формы: отображение различных данных в формах для каждого пользователя при входе в систему
Здравствуйте, я сейчас делаю webiste на Django, возможно ли сделать различные поля select путем запроса объектов, приписанных пользователю через request.user.id
, чтобы получить и получить данные, введенные пользователем, а не все данные, собранные по всем пользователям? Большое спасибо
class clientforms(forms.Form):
projectfield = forms.ModelChoiceField(queryset= Project.objects.all(),
widget=forms.Select(attrs={
'class' : 'form-control',
})
)
кредиты оригинальному ответу : Django forms: рендеринг различных данных в формах для каждого пользователя
исходя из предыдущего ответа по ссылке, вы должны переопределить оригинальные формы
forms.py
class clientforms(forms.Form):
projectfield = forms.ModelChoiceField(queryset= Project.objects.all().filter(profile=1),
widget=forms.Select(attrs={
'class' : 'form-control',
})
)
#add the overriding function
def __init__(self, user, *args, **kwargs):
super(clientforms, self).__init__(*args, **kwargs)
self.fields['projectfield'].queryset=Project.objects.all().filter(profile=Profile.objects.get(user_id=user.id))
в вашем файле views.py
# add the request.user on your forms
user = request.form
form = clientforms(user)