2017-12-30 72 views
-1

私はフォームを作成しています。モバイルでレンダリングするモバイルブロックと、デスクトップでレンダリングするデスクトップブロックを作成しました。このフォームにはいくつかのフィールドがあり、誰かに日付を入力させたい日付フィールドを除いて正常に動作しています。モバイルブロックでは、日付フィールドは完全に値を取っています。デスクトップブロックでは、ではなく、の値が入ります。私は、デスクトップバージョンをレンダリングするとき、このエラーを取得し終わる:HTMLフォームはデスクトップ上で日付の値を取っていませんが、モバイルにあります

ValueError: time data '' does not match format '%Y-%m-%d'

HTMLは次のようになります(私は簡単にするために、フォーム内のフィールドの大きな塊を排除してきた、あなたがする必要がある場合は私に知らせて)HTMLの詳細を参照してください。

<form method="POST"> 
<div class="mobile-only"> 
    <div class="form-group row"> 
     <div class="col-12 col-md-2 col-lg-4"> 
     <label for="start-date" class="col-form-label"> 
      <h4>Start Date: <sup class="required">(required)</sup></h4> 
     </label> 
     </div> 
     <div class="col-12 col-md-10 col-lg-4"> 
     <input type ="date" maxlength="10" class="form-control" id="start-date" name="start-date" placeholder="MM/DD/YYYY"> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="col-3 col-md-1"> 
     <button class="green-button link-text" type="submit" id="submit" type="submit">Save</button> 
     </div> 
     <div class="col-3 col-md-1"> 
     <button class="green-button"><a href="{{ url_for('displayReminders') }}" class="link-text">Cancel</a></button> 
     </div> 
    </div> 
</div> 

上記のコードはデスクトップ上に描画されているものである、と私は上記参照エラーになります以下、モバイル上で正常に動作します:

<div class="desktop-only"> 
    <div class="form-group row"> 
     <div class="col-lg-1"> 
     <label for="start-date" class="col-form-label"> 
      <h4>Start Date: <sup class="required">(required)</sup></h4> 
     </label> 
     </div> 
     <div class="col-lg-3"> 
     <input type ="date" maxlength="10" class="form-control" id="start-date" name="start-date" placeholder="MM/DD/YYYY"> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="col-3 col-md-1"> 
     <button class="green-button link-text" type="submit" id="submit" type="submit">Save</button> 
     </div> 
     <div class="col-3 col-md-1"> 
     <button class="green-button"><a href="{{ url_for('displayReminders') }}" class="link-text">Cancel</a></button> 
     </div> 
    </div> 
</div> 
</form> 

また、関連性がある場合は、Bootstrap 4を使用しています。バックエンドはFlask App with Pythonです。問題は何ですか?あなたは、あなたがしなければならないデータベースにアップロードしようとした場合、

format '%Y-%m-%d' 

あなたのエラーです:

placeholder="MM/DD/YYYY" 

が、その後別の場所コードで、あなたが期待している:

答えて

0

プレースホルダは、ユーザーにこの形式を示しますYYYY-MM-DDを国際標準として使用し、フロントエンドでMM/DD/YYYYに変換します。 MM/DD/YYYYの入力を求める場合は、YYYY-DD-MMに変換する必要があります

+0

ありがとうございます。しかし、それではなぜモバイル部門でうまく機能しているのですか?私はモバイル部門で同じコードを使用しています。 – Deep

+0

また、気づいた場合、フィールドに* NO *データが登録されているというエラーが表示されます。それはあなたが言及している特定の問題だった場合、エラーは、それが "MM/DD/YYYY"として読んでいるデータを言及し、それが適切にフォーマットされていないと言う。私は '%Y'、 '%m'、 '%d'は入力から "MM"、 "DD"、 "YYYY"を取り除き、PythonでYYYY-MM-DDに再フォーマットすることを意図していますコード。再び、これはモバイル上で動作しています。 – Deep

+0

はい、間違った形式のためデータを登録しません。前のウェブページと同様の問題がありましたが、それを引き起こしたWindowsマシンの日付形式でしたが、ヨーロッパ形式からアメリカ形式に変更しなければなりませんでした。 – michal

関連する問題