Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django ModelForm中带条件的限制选项_Django_Modelform_Choice - Fatal编程技术网

Django ModelForm中带条件的限制选项

Django ModelForm中带条件的限制选项,django,modelform,choice,Django,Modelform,Choice,不了解如何限制用户组字段的选择(django admin中的标准用户组) 此代码不限制选择-在表单中显示字段的所有选择您可以将模型发布为well@HenryM第一篇文章更新 views.py ACTUAL = 'Actual' IRRELEVANT = 'Irrelevant' REWORK = 'Rework' CHECKING = 'Checking' DOCUMENT_STATUS_OF_GROUP = [ACTUAL, IRRELEVANT, REWORK, CHECKING] c

不了解如何限制用户组字段的选择(django admin中的标准用户组)


此代码不限制选择-在表单中显示字段的所有选择

您可以将模型发布为well@HenryM第一篇文章更新
views.py

ACTUAL = 'Actual'
IRRELEVANT = 'Irrelevant'
REWORK = 'Rework'
CHECKING = 'Checking'

DOCUMENT_STATUS_OF_GROUP = [ACTUAL, IRRELEVANT, REWORK, CHECKING]

class UpdateDocumentForm(forms.ModelForm):
    class Meta:
       model = Document
       fields = ('name', 'status')

        def __init__(self, *args, **kwargs):
           group = kwargs.pop('groups')
           super(UpdateDocumentForm, self).__init__(*args, **kwargs)
           if group == 'Controler':
                self.fields['status'].choices = DOCUMENT_STATUS_OF_GROUP

models.py

class Document(models.Model):
    ACTUAL = 'Actual'
    INWORK = 'InWork'
    IRRELEVANT = 'Irrelevant'
    REWORK = 'Rework'
    CHECKING = 'Checking'

    DOCUMENT_STATUS = [ACTUAL, IRRELEVANT, REWORK, CHECKING, INWORK]

    name = models.CharField(max_length=50)
    status = models.TextField(default=IRRELEVANT, choices=[(x, x) for x in DOCUMENT_STATUS])