温馨提示:本文翻译自stackoverflow.com,查看原文请点击:python - Pass variable from view to form in Django
django python

python - 将变量从视图传递到Django中的表单

发布于 2020-03-27 12:03:47

我正在构建一个简单的任务管理系统,其中一个公司可以有多个项目,每个公司都有员工。我想要一个允许经理将用户添加到项目的表格,但要限制可用用户属于公司。

我正在将变量company_pk从视图传递到表单,但是我不确定如何在init函数之外设置/访问变量

class AddUserForm(forms.Form):
    def __init__(self, company_pk=None, *args, **kwargs):
        """
        Intantiation service.
        This method extends the default instantiation service.
        """
        super(AddUserForm, self).__init__(*args, **kwargs)
        if company_pk:
            print("company_pk: ", company_pk)
            self._company_pk = company_pk

    user = forms.ModelChoiceField(
        queryset=User.objects.filter(company__pk=self._company_pk))
form = AddUserForm(company_pk=project_id)

如前所述,我只想将用户过滤到属于给定公司的用户,但是我不知道如何在init之外访问company_pk 我收到错误:NameError:未定义名称“ self”

查看更多

查看更多

提问者
user1314147
被浏览
12
Mahmood Al Rayhan 2019-07-04 00:04
class AddUserForm(forms.Form):
    def __init__(self, company_pk=None, *args, **kwargs):
        super(AddUserForm, self).__init__(*args, **kwargs)
        self.fields['user'].queryset = User.objects.filter(company__pk=company_pk)

    user = forms.ModelChoiceField(queryset=User.objects.all())