Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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 表单加载后更改字段必需属性_Django_Django Forms - Fatal编程技术网

Django 表单加载后更改字段必需属性

Django 表单加载后更改字段必需属性,django,django-forms,Django,Django Forms,我有一个表单(a),其中一个字段取决于第二个表单(B)的选择值 因此,我需要根据在B表单的选择字段中选择的内容,将该字段设置为必填字段或非必填字段 目前,我在A表单\uuuu init\uuuu方法中将field.required设置为False,我通过覆盖A的clean方法来检查请求中B表单中的数据,并在必要时设置field required,但这一切都是在单击submit按钮后发生的。显然,如果该字段现在设置为必填,并且我更改了B中选择字段的值,我将无法再在A中将字段设置为不必填,因为它不允

我有一个表单(a),其中一个字段取决于第二个表单(B)的选择值

因此,我需要根据在B表单的选择字段中选择的内容,将该字段设置为必填字段或非必填字段

目前,我在A表单
\uuuu init\uuuu
方法中将field.required设置为False,我通过覆盖A的clean方法来检查请求中B表单中的数据,并在必要时设置field required,但这一切都是在单击submit按钮后发生的。显然,如果该字段现在设置为必填,并且我更改了B中选择字段的值,我将无法再在A中将字段设置为不必填,因为它不允许我单击提交

有可能让它以某种方式工作吗

我的表格:

class PublicationCreateForm(forms.ModelForm):

class Meta:
    model = Publication
    fields = ('title', 'event')

def __init__(self, *args, **kwargs):
    self.request = kwargs.pop('request', None)
    super(PublicationCreateForm, self).__init__(*args, **kwargs)
    self.fields['event'].required = False

def clean(self):
    type = self.request.POST['type']
    if type == 'BOOK':
        self.fields['event'].required = False
    if type == 'CONF':
        self.fields['event'].required = True

我将在模板中使用jQuery和以下行之一来处理此问题

$('#Your_Input').removeAttr('required');
$('#Your_Button').removeAttr("disabled")

希望能有所帮助。

我认为最好在模板中处理此逻辑,无论您使用jquery进行此操作