2017-06-18 2 views
0

私はいくつかの助けが必要です。フォーム提出時に空白のフィールドを検証する必要があります。私は以下のコードを説明しています。PythonとDjangoを使って空白の入力フィールドの検証をチェックする方法

bmr.html:

<form method="post" action="{% url 'some' %}"> 
    {% csrf_token %} 
    <label>location name: </label> 
    <input name="lname" maxlength="250"> 
    <br> 
    <label>Room name: </label> 
    <input name="rname" maxlength="250"> 
    <br> 
    <label>No of Seats: </label> 
    <input type="number" name="seat" maxlength="10"> 
    <br> 
    <label>Projector Screen</label> 
    <select name="projector"> 
     <option value="Yes">Yes</option> 
     <option value="No">No</option> 
    </select> 
    <br> 
    <label>Video conference</label> 
    <select name="video"> 
     <option value="Yes">Yes</option> 
     <option value="No">No</option> 
    </select> 
    <br> 
    <input type="submit" value="Submit"> 
</form> 

Pythonの側のコードを以下に示します。ここで

def some(request): 
    if request.method == 'POST': 
     serch=request.POST.get('searchby') 
     location_name = request.POST.get('lname') 
     rname = request.POST.get('rname') 
     seat = request.POST.get('seat') 
     projector = request.POST.get('projector') 
     video = request.POST.get('video') 
     num=str(random.randint(100000000000,999999999999)) 
     location_name = location_name[0:255] 
     rname = rname[0:255] 
     seat = seat[0:10]  
     doc = m.parse("roomlist.xml") 
     root=doc.getElementsByTagName("roomlist") 
     valeurs = doc.getElementsByTagName("roomlist")[0] 
     element = doc.createElement("location") 
     element.setAttribute("name" , location_name) 
     el1 = element.appendChild(doc.createElement("room")) 
     el1.setAttribute("id", num) 
     el2=el1.appendChild(doc.createElement("roomname")) 
     el2.appendChild(doc.createTextNode(rname)) 
     el3=el1.appendChild(doc.createElement("noseats")) 
     el3.appendChild(doc.createTextNode(seat)) 
     el4=el1.appendChild(doc.createElement("projectorscreen")) 
     el4.appendChild(doc.createTextNode(projector)) 
     el5=el1.appendChild(doc.createElement("videoconf")) 
     el5.appendChild(doc.createTextNode(video)) 
     valeurs.appendChild(element) 
     doc.writexml(open("roomlist.xml","w")) 
    return render(request, 'booking/bmr.html', {}) 

私はアリのフィールドが空白の場合、それは検証メッセージをユーザーに表示され、フォームが私を助けるsubmit.Pleaseません必要です。

+0

Djangoフォームフレームワークを使用していないのはなぜですか?これはまさにそれが目的です。 –

+0

この場合、何をするか。私はJavaScriptを使用することはできますか? – satya

+0

何ですか?私はちょうどあなたに何をすべきかを言った。なぜあなたはこれにJavaScriptを持ってきましたか? [Djangoフォーム](https://docs.djangoproject.com/en/1.11/topics/forms/)を使用してください。 –

答えて

0

入力フィールドに必須の属性を追加して、htmlを機能させるだけです。

<input name="lname" maxlength="250" required> 
.... 
.... 

し、また、サーバー側での検証を行いたい場合はちょうどこの

serch=request.POST.get('searchby') 
location_name = request.POST.get('lname') 
if search == "" or location_name == "" ... : 
    messages.error(request, 'Please fill all the fields") 
else: 
    num=str(random.randint(100000000000,999999999999)) 
    location_name = location_name[0:255] 
    rname = rname[0:255] 
    seat = seat[0:10]  
    doc = m.parse("roomlist.xml") 
    .... 
    .... 

を行うが、検証を行うための最善の方法は、それはあなた

に時間を節約するDjangoのフォームを使用することです
0

Javascriptの代わりにDjangoフォームを使用する必要があります。

class YourModel(models.Model) : 

    yourfield = models.CharField(null=True, blank=False, ...) 

引数空白のフィールドを取得するblank=Trueしてみましょう: 初めて、あなたはモデルファイルを作成する必要があります。 次に、モデルに応じてフォームファイルを使用できます。

関連する問題