2017-09-25 75 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 }) 

現在,當有一個已經存在具有此名稱一個組織它似乎,似乎與此消息的字段下。