2016-05-07 4 views
0

フィールドが無効な場合、カスタムエラーメッセージを表示したい。私は、テンプレート内の任意のメッセージを取得していない午前、ブートストラップ付きのdjangoモデルフォームにカスタムエラーメッセージを表示

{% extends "base.html" %} 
{% block title %} 
Test Form 
{% endblock title %} 

{% load widget_tweaks %} 

{% block body_block %} 
<h1>hello from test</h1>  

<form class='form-horizontal' role='form' action="." method="POST"> 
    <div class='form-group'> 

     <label class='control-label col-md-2 col-md-offset-2' for='id_name'>Name</label> 
     <div class='col-md-6'> 

      {% render_field form.name class="form-control" placeholder="Full Name" type="text" %} 
      {{ form.name.error_messages }} 
      {# I want to add here classes for alert-error etC#} 
     </div> 
    </div> 
    {% csrf_token %} 

    <div class='form-group'> 
     <div class='col-md-offset-4 col-md-6'> 
      <button type="submit" class="btn btn-success">Submit</button> 
     </div> 
    </div> 


</form>  
{% endblock body_block %} 

しかし:

​​

ビューは次のとおりです:

def test(request): 
    if request.method == 'POST': 
     print "The form is submitted successfully." 
     form = TestForm(request.POST) 
     if form.is_valid(): 
      print request.POST.get("name") 
      return render(request, 'test.html',{'form' : TestForm()}) 
     else: 
      print "Something wrong with inputs." 
      return render(request, 'test.html',{'form' : form}) 
    else: 
     return render(request,'test.html',{'form' : TestForm()}) 

とテンプレートがある私は、次のモデルを持っています。これを解決するために私を助けてください。

答えて

2

テンプレート内のform.name.error_messagesform.name.errorsを変更してください。

あなたがフィールド/エラーが手動で一つ一つをレンダリングするようで、hereを説明した:

あなたは{% for %}テンプレートタグを使用して、より自動アプローチを検討する必要があります。

EDIT:

class Meta: 
    model = Test 
    fields = '__all__' 
    error_messages = { 
     'some_integer_field': { 
      'invalid': 'some custom invalid message', 
     }, 
    } 
デフォルトのエラーメッセージを変更するには、フォーム Metaでご error_messagesを更新するとDjangoで使用するキーを上書きする必要があり、この場合には IntegerFieldソースに基づいて、キー invalidです
+0

あなたの答えをありがとう。出来た。デフォルトのメッセージを上書きする方法を教えてください。たとえば、int型のような型エラーの場合は、取得しています:整数を入力してください。これをどのように無効にすることができますか? – learner

+0

クール!この情報を含めるために私の答えを更新しました。 – fips

+0

私は知っているが、私が得たメッセージを無効にしたい。 – learner

関連する問題