2

ユーザー権限に応じて選択フィールドを更新しようとしています。False(デフォルト)の場合、標準ユーザーが表示されるブールフィールドがあります。それ以外の場合、ユーザーが許可を持っている場合は、すべてを表示したいです。

ビュー.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

フォーム.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

どんな助けでも大歓迎です、私はしばらくこれに固執しています(そして、多くのグーグルSOの提案/回答を試しました。)

4

1 に答える 1