Итак, у меня есть пользовательская форма, где мне нужно передать request.user.username, чтобы я мог использовать ее для заполнения форм. ModelChoiceField в зависимости от того, какой пользователь обращается к ней.
Вот что у меня есть
views.py
if request.method == 'POST':
form = DepartmentForm(request.POST, username=request.user.username)
# Do stuff
else:
form = DepartmentForm(username=request.user.username)
forms.py
class DepartmentForm(forms.Form):
def __init__(self, *args, **kwargs):
self.username = kwargs.pop('username', None)
super(DepartmentForm, self).__init__(*args, **kwargs)
Company = forms.ModelChoiceField(queryset=Company.objects.raw('''
SELECT DISTINCT c.id, c.name, c.createdBy, c.allowedTeam_ID FROM projects_company AS c
LEFT JOIN auth_user_groups AS aug ON c.allowedTeam_id=aug.group_id
LEFT JOIN auth_user AS au ON aug.user_id=au.id
WHERE au.username = %s OR c.createdBy = %s''',
[self.username, self.username]),
empty_label='Select company', widget=forms.Select(attrs={'class': 'materialSelect', 'id': 'companyDropdown'}))
Но когда я пытаюсь выбрать заполнить self.username, я получаю NameError: имя 'self' не определено
Я пытался найти свое решение, но, похоже, ни одно из найденных мной не работает.
Я был бы признателен за любую помощь, которую вы, ребята, можете оказать.
Если вам нужна дополнительная информация, пожалуйста, не стесняйтесь спрашивать, и я обновлю вопрос соответственно.
Это ошибка, которую я получаю
строка 25, в DepartmentForm
[self.username, self.username]),
NameError: имя 'self' не определено
Это конец запроса, в котором я выбираю на основе self.username