2015-07-19 57 views
0

那麼,我們如何使用jinja和wtf形式顯示日期時間小部件?form.validate_on_submit也是false

forms.py

class FoodForm(Form): 
    food_name = StringField('Food Name', validators=[Required()]) 
    food_description = StringField('Food Description', validators=[Required()]) 
    price = FloatField('Price', validators=[Required()]) 
    **event_starts = DateTimeField('Event Starts', validators=[Required()]) 
    event_ends = DateTimeField('Event Ends', validators=[Required()])** 
    food_types = ['Indian', 'American', 'Chinese', 'Italian', 'Other', 'French', 
        'Deli','Mediterranean', 'Japanese'] 
    food_choices = [(i+1, food_type) for i, food_type in enumerate(sorted(food_types))] 
    cuisine_type = SelectField('Cuisine Type', choices=food_choices, validators=[Required()]) 
    submit = SubmitField('Submit') 

jinja_template

 <form class="form form-horizontal" role="form" method="POST"> 
     {{ form.hidden_tag() }} 
       <div class="row"> 
        <div class="col-md-6">{{ form.food_name.label }} </div> 
        <div class="col-md-6">{{ form.food_name() }} {% for error in form.food_name.errors %} <div class="flash">{{ message }} </div>{% endfor %}</div> 
       </div> 
       <div class="row"> 
        <div class="col-md-6">{{ form.food_description.label }} </div> 
        <div class="col-md-6">{{ form.food_description() }} {% for error in form.food_description.errors %} <div class="flash">{{ message }}</div>{% endfor %}</div> 
       </div> 
       **<div class="row"> 
        <div class="col-md-6">{{ form.event_starts.label }} </div> 
         <div class="col-md-6"><input id="event_starts" type="datetime-local" value="2014-10-31T00:00:01"> {% for error in form.event_starts.errors %} <div class="flash">{{ message }}</div>{% endfor %}</div> 
       </div>** 


<div class="row"> 
       <div class="col-md-6">{{ form.event_ends.label }} </div> 
       <div class="col-md-6"><input id="event_ends" type="datetime-local" value="2014-10-31T00:00:01"> {% for error in form.event_ends.errors %} <div class="flash">{{ message }}</div>{% endfor %}</div> 
      </div> 
       <div class="row"> 
        <div class="col-md-6">{{ form.price.label }} </div> 
        <div class="col-md-6">{{ form.price() }} {% for error in form.price.errors %} <div class="flash">{{ message }}</div>{% endfor %}</div> 
       </div> 
       <div class="row"> 
        <div class="col-md-6">{{ form.cuisine_type.label }} </div> 
        <div class="col-sm-2 control-label" for="formGroupInputLarge">{{ form.cuisine_type() }} {% for error in form.cuisine_type.errors %} <div class="flash">{{ message }}</div>{% endfor %}</div> 
       </div> 
       {% with messages = get_flashed_messages() %} 
     {% if messages %} 
     <ul class=flashes> 
     {% for message in messages %} 
      <li>{{ message | safe }}</li> 
     {% endfor %} 
     </ul> 
     {% endif %} 

    {% endwith %} 


      <button type="submit" class="btn btn-primary btn-lg" value="submit">Submit</button> 

     </form> 

退房event_start日期和event_end日期的形式和jinja_template。 但由於某種原因form.validate_on_submit()始終爲false?

+1

您的表單需要一個'動作「屬性。 – doru

+0

什麼是驗證錯誤? – dirn

回答

1

我假設你從與id S中的兩個輸入字段的value屬性獲得的日期和時間:event_startsevent_ends。如果是這樣,你應該使用format參數在DateTimeField s到設定的日期時間的格式,使之與從您的模板相同:

event_starts = DateTimeField('Event Starts',format ='%Y-%m-%dT%H:%M:%S', validators=[Required()]) 

分別

event_ends = DateTimeField('Event Ends', format ='%Y-%m-%dT%H:%M:%S',validators=[Required()]) 
相關問題