Я пытаюсь обновить поле выбора в зависимости от прав пользователя. У меня есть логическое поле, которое, если False (по умолчанию), получает стандартный пользователь. В противном случае, если у пользователя есть разрешение, я хочу отобразить все.Заполните поле Django Choice из базы данных на основе user.has_perms
views.py
class ExportFormView(FormView):
template_name = 'export.html'
form_class = ExportForm
success_url = '/'
def get_form_kwargs(self):
kwargs = super(ExportFormView, self).get_form_kwargs()
kwargs.update({
'request' : self.request
})
return kwargs
forms.py
class ExportForm(forms.Form):
def __init__(self, request, *args, **kwargs):
self.request = request
super(ExportForm, self).__init__(*args, **kwargs)
choice_list = []
if request.user.has_perms('tracker.print_all'):
e = Muid.objects.values('batch_number').distinct()
else:
e = Muid.objects.values('batch_number').distinct().filter(printed=False)
for item in e:
choice = item['batch_number']
choice_list.append((choice, choice))
batch_number = forms.ChoiceField(choices = choice_list)
Я получаю ошибку:
NameError at/
name 'request' is not defined
Любая помощь будет принята с благодарностью, я был застрял на этом, пока e (И попробовал много советов по поиску и ответам).
Другая ссылка [http://ilian.ini.org/django-forms- choicefield-с-динамических значений /] (http://ilian.ini.org/django-forms-choicefield-with-dynamic-values/). – santiagopim