У меня есть форма, которая содержит несколько полей, среди этих полей project
, который должен быть select
виджетом, который содержит проекты, в которых зарегистрирован зарегистрированный пользователь. Это часть моего кода.
class PublicationForm(forms.ModelForm):
def __init__(self, *args, user=None, **kwargs):
super(PublicationForm, self).__init__(*args, **kwargs)
self.user = user
project = forms.ModelChoiceField(
queryset=ProjectMembers.objects.filter(user__username=user),
widget=forms.Select,
required=False
)
class Meta:
model = Publication
fields = ['title', 'content', 'project', 'source']
Я передаю зарегистрированному пользователю форму в моем представлении следующим образом
PublicationForm(request.POST, user=request.user)
Но я в классе формы не могу получить доступ к пользовательской переменной, я попытался
...queryset=ProjectMembers.objects.filter(user__username=self.user)..
...queryset=ProjectMembers.objects.filter(user__username=user)..
, ноЯ получил эти ошибки
NameError: name 'self' is not defined
и NameError: name 'user' is not defined
Существует ли решение или другой метод для фильтрации проектов, членом которых является зарегистрированный пользователь.Заранее спасибо.