-2
파이썬 코드에서 2 개의 DateField 객체의 차이점을 얻고 그 차이를 기반으로 계산을 수행하려고합니다. 이 프로젝트에 플라스크를 사용하고 있으며 지금까지 다음 코드가 있습니다. 조회수 :파이썬에서 날짜의 두 datetime 필드의 차이를 얻으십시오.
@admin.route('/approve/loan_payment/<id>', methods=['GET', 'POST'])
@login_required
def approve_loan_payment(id):
if not current_user.is_admin:
abort(403)
loan = Loan.query.filter_by(id=id).first()
if loan is None:
abort(404)
else:
form = ApproveLoanPayment()
if current_user.is_admin and form.validate_on_submit():
loan.user.username = form.username.data
loan.loan_amt = form.loan_amt.data
loan.my_funds = form.my_funds.data
loan.approved_on = form.approved_on.data
loan.repaid_on = form.repaid_on.data
loan.period = abs((loan.repaid_on - loan.approved_on).days)
loan.period = abs((loan.repaid_on - loan.approved_on).days)
if loan.period == 'More than 7 days' or \
loan.period == 'more than 7 days':
if loan.maximum_charge > loan.my_funds:
loan.balance = loan.maximum_charge - loan.my_funds
else:
loan.balance = loan.my_funds - loan.maximum_charge
loan.extra = loan.balance
if loan.period == 'Less than 7 days' or \
loan.period == 'less than 7 days':
if loan.minimum_charge > loan.my_funds:
loan.balance = loan.minimum_charge - loan.my_funds
else:
loan.balance = loan.my_funds - loan.minimum_charge
loan.extra = loan.balance
loan.confirm_payment = True
db.session.add(loan)
db.session.commit()
if loan.extra >= 0 or loan.balance == 0:
loan.is_repaid_in_full = True
loan.user.is_owing = False
flash("The Loan has been repaid in full")
if loan.balance > 0:
loan.is_repaid_in_full = False
loan.user.is_owing = True
if loan.maximum_charge > loan.my_funds:
updated_balance = loan.balance
loan.maximum_charge = updated_balance
elif loan.minimum_charge > loan.my_funds:
updated_balance = loan.balance
loan.minimum_charge = updated_balance
flash("Loan payment approved."
"Loan balance is %s" % loan.balance)
flash("The Loan has not yet been repaid in full")
db.session.add(loan)
db.session.commit()
flash('The loan has been repaid')
return redirect(url_for('admin.view_all_loans'))
form.username.data = loan.user.username
form.loan_amt.data = loan.loan_amt
form.my_funds.data = loan.my_funds
form.approved_on.data = loan.approved_on
return render_template('admin/approve-loan-payment.html',
form=form, loan=loan)
그러나이 결과로 '없음'을 표시하지 않습니다.
이 구현의 형식은 다음과 같습니다
class ApproveLoanPayment(Form):
username = StringField('Username', validators=[
Required(), Length(1, 64), Regexp('^[A-Za-z][A-Za-z0-9_.]*$', 0,
'Usernames must have only letters, '
'numbers, dots or underscores')])
loan_amt = FloatField('Borrowed Amount')
approved_on = DateField('Date Approved')
repaid_on = DateField('Date Repaid', default=datetime.utcnow)
period = IntegerField('Period Taken')
my_funds = FloatField('Amount Paid')
submit = SubmitField('Approve Loan')
가 친절하게 내가 바로 일을하고 있지 않다 무엇을 강조 표시합니다.
질문의 형식을 올바르게 지정할 수 있습니까? 코드를 읽을 수 없습니다 – SnoozeTime
방금했습니다. 한번보세요. –
없음을 표시하는 함수 호출은 무엇입니까? 최소한의 실제 예제를 제공 할 수 있습니까? 이렇게하면 일을 훨씬 쉽게 이해할 수 있습니다. – Ohumeronen