2 回答

TA貢獻1816條經驗 獲得超4個贊
這是未經測試的??纯此欠裼行В?/p>
for i in range (1,5):
if form['contact' + str(i)].data:
contact = Contacts(content=form['contact' + str(i)].data)
db.session.add(contact)
db.session.commit()

TA貢獻1810條經驗 獲得超5個贊
我還沒有測試過這個,但它應該可以工作,或者至少讓你走上正確的道路,了解如何進一步壓縮它。
@app.route('/admin/media-kontaktai', methods=['GET', 'POST'])
@login_required
def media_contacts():
form = MediaContactsForm()
if request.method == 'POST':
if form.validate_on_submit():
try:
# You can just delete all records in one go instead of
# wasting time iterating and checking lengths
db.session.query(Contacts).delete()
db.session.commit()
except:
db.session.rollback()
# I am iterating fields in the form that have data
# so we don't need multiple if statements
for field in [field for field in form if field.data]:
contact = Contacts(content=field.data)
db.session.add(contact)
db.session.commit()
flash('Informacija atnaujinta!', 'success')
return redirect(url_for('media_contacts'))
else:
for field, index in enumerate(form):
for contact in Contacts.query.all():
field.data = contact.content
contacts = Contacts.query.all()
return render_template('a-media-kontaktai.html', title='Media ir kontaktai', form=form, contacts=contacts)
添加回答
舉報