在django管理表单中排除自定义字段

时间:2016-01-21 13:27:55

标签: python django django-forms django-admin

我使用django表单在我的表单中添加自定义字段,但我想在某些情况下排除此自定义字段(当在url查询参数上设置user_id时),我该如何处理它?

在我的尝试和错误中发生了一些有趣的事情,我将自定义字段名称放在我的表单的Mata.exclude中,但此自定义字段仍然以我的形式生成!!!!

这是我的代码:

class PushTokenForm(forms.ModelForm):

    push_scenario = forms.ChoiceField(
        label=_('Push Scenario'),
        choices=get_scenarios(),
    )

    class Meta:
        model = PushToken
        exclude = ['failed', 'push_scenario']
  

更新

def get_form(self, request, obj=None, **kwargs):
    self.exclude = []
    user_id = request.GET['user_id'] if 'user_id' in request.GET else None
    if user_id:
        self.exclude.append('push_scenario')
    form = super(PushTokenAdmin, self).get_form(request, obj, **kwargs)
    return form

0 个答案:

没有答案