2017-09-25 42 views
1

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

<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,]}) 

然而,这仅仅使表单没有提交。验证错误只出现在日志中。

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

+0

那么你应该在你的repsonse的内容中有同样的信息。 – Bestasttung

+0

@Bestasttung谢谢。这实际上的确帮助我指出了正确的方向。 – RoboRob

+0

我的荣幸! :) – Bestasttung

回答

0

对我来说,事实证明问题在于引发ValidationError的位置。我在保存功能模型中做了它。我需要做的是将其移动到组织序列化程序。 另外,而不只是

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

我改成了

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

现在,当有一个已经存在具有此名称一个组织它似乎,似乎与此消息的字段下。