Я ходил по кругу и не могу понять это. Я пытаюсь добавить время DateField в мою flask форму. Все работает нормально, пока я не добавлю eventstart = DateField...
, а затем не удается проверить. Любая помощь будет потрясающей. Я просто не могу пройти мимо этого.
forms.py
@login_required
@events_blueprint.route('/add', methods=['GET', 'POST'])
def register():
form = RegistrationForm()
print(form.errors)
if form.validate_on_submit():
print("success")
event = Events(
eventname=form.eventname.data,
eventstart=form.eventstart.data, #VALIDATES WITHOUT THIS LINE
timeblock=form.timeblock.data,
supplierprice=form.supplierprice.data,
buyerprice=form.buyerprice.data,
tier=form.tier.data
)
print(event)
db.session.add(event)
db.session.commit()
flash("Thank you for registering your event.")
return redirect(url_for('events.list_event'))
print("failed to validate")
return render_template('add.html', form=form)
Когда я добавляю строку выше eventstart = form.eventstart.data, #VALIDATES БЕЗ ЭТОЙ ЛИНИИ , затем он не проходит проверку.
views.py
class RegistrationForm(FlaskForm):
eventname = StringField('Event Name', validators=[DataRequired()])
eventstart = DateTimeField(
'Enter start date and time', id='datepick', validators=[DataRequired()]
) # FAILS AFTER ADDING THIS LINE
timeblock = IntegerField(
'Enter the length of time', validators=[DataRequired()]
)
supplierprice = IntegerField(
'Enter the supplier cost', validators=[DataRequired()]
)
buyerprice = IntegerField(
'Enter the buyer cost', validators=[DataRequired()]
)
tier = IntegerField(
'Enter the buyer tier', validators=[DataRequired()]
)
submit = SubmitField('Register!')
Снова добавляем строку eventstart = DateTimeField ('Введите дату и время начала', id = 'datepick ', validators = [DataRequired ()]) # FAILS ПОСЛЕ ДОБАВЛЕНИЯ ЭТОЙ ЛИНИИ - это когда происходит сбой.
add. html
{% extends "bootstrap/base.html" %}
{% import "bootstrap/wtf.html" as wtf %}
{% block title %}This is an example page{% endblock %}
{% block head %}
{{ super() }}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.min.css">
{% endblock %}
{% block content %}
<div class="container">
<h1>{{current_user}}</h1>
<div class="row">
<div class='col-sm-6'>
<form method="POST">
{{form.hidden_tag()}}
{{form.eventname.label}}{{form.eventname()}}<br><br>
{{form.eventstart.label}}{{form.eventstart}}<br><br>
{{form.timeblock.label}}{{form.timeblock()}}<br><br>
{{form.supplierprice.label}}{{form.supplierprice()}}<br><br>
{{form.buyerprice.label}}{{form.buyerprice()}}<br><br>
{{form.tier.label}}{{form.tier()}}<br><br>
{{form.submit()}}
</form>
</div>
</div>
</div>
{% endblock %}
{% block scripts %}
{{ super() }}
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript">
$(function () {
$('#datepick').datetimepicker();
});
</script>
{% endblock %}