禁用除默认值之外的所有选项 - ChoiceField Django Forms

时间:2014-06-26 02:54:31

标签: python django forms choicefield

所以基本上这就是我要做的事情:

我希望有一种方法可以根据用户只读取一些字段。

到目前为止它很容易,但是问题就出现了,我需要将一些选择输入设为只读,而且......只读它们不能很好地工作。问题是,即使未提交新值,用户仍然可以使用它。我希望禁用选择字段,但如果我这样做,则不会通过POST发送该值,并且表单有效方法存在问题。

所以在阅读之后,我明白唯一的方法是禁用除默认选择的字段以外的所有字段?

怎么可能

这是我到目前为止所做的:

def __init__(self, *args, **kwargs):
    self.user = kwargs.pop('user')
    super(TeamForm, self).__init__(*args, **kwargs)
    instance = getattr(self, 'instance', None)

    if instance and instance.pk is None:
        self.fields['division'].initial = 1

    user_role = self.user.memberaccount.get_role()

    if user_role != 'admin':

这就是我要禁用选择的地方......

非常感谢你的帮助, ARA

1 个答案:

答案 0 :(得分:0)

我在这里看到两种可能的选择: