使用ReactJS和Redux Form进行Django验证

时间:2017-09-25 01:09:22

标签: python django forms reactjs redux

目前,我正在开发一个使用ReactJS,Redux和Django的项目。我有一个ReduxForm用于注册。

    <h3>Company's basic information</h3>
        <Field 
          // Redux form props
          name="name"
          component={renderTextField}
          label="Company's Name"

          // Custom props
          required={true}
          type="text"
          placeholder="Company's Name..."
          onBlur={this.handleFieldsChange.bind(this)}
        />

所以单个字段看起来就像那样。 提交表单时,信息将发送到Django进行存储。我不确定这两者之间的验证是如何起作用的。 我想要做的是检查公司是否存在该名称。

Organization.objects.filter(company_name=name)

所以我这样做,我能够看到它是否存在。

如果是,那么我想让用户知道他们不能有相同的名字。 这是我不确定如何使这项工作的地方。 我做了类似

的事情
raise ValidationError({'name': ["A company named '%s' already exists" % name,]})

但是,这只会使表单不提交。验证错误仅出现在日志中。

也许有人可以指出我正确的方向。

1 个答案:

答案 0 :(得分:0)

对我来说,事实证明问题是引发ValidationError的位置。我在模型中使用保存功能。我需要做的是将它移动到组织序列化器。 而且,而不仅仅是

raise ValidationError({'name': ["A company named '%s' already exists" % name,]})

我把它改成了

raise serializers.ValidationError({'name': "A company named '%s' already exists" % name })

现在看来,当某个组织已经存在此名称时,它会显示在带有此消息的字段下。