我有两种类型的注册,无法弄清楚如果用户偶然选择两者。基本上我想优先考虑其中一个逻辑,以防用户同时拥有这两个选项。以下是我试图编码的解释和条件。
如果用户的学校在列表中且用户有优惠券,那么他应该代表大学注册,优惠券将不会被后端使用。
my_school = form.university.data
waiverlist = ['A', 'B', 'C']
if my_school in waiverlist:
package = Package(
student_id=profile_data.id,
stripe_id = 'N/A For Group Subscriber',
student_email= profile_data.email,
is_active=True,
package_type='PartnerSubscription',
subscription_id='N/A For Group Subscriber'
)
dbase.session.add(package)
dbase.session.commit()
cp = Coupons.query.filter_by(coupon=Coupons.coupon).first()
if cp:
mycoupon = form.coupon.data
print mycoupon
print cp.coupon
if form.coupon.data==cp.coupon:
package = Package(
student_id=profile_data.id,
stripe_id = 'N/A For Group Subscriber',
student_email= profile_data.email,
is_active=True,
package_type='GroupSubsciption',
subscription_id='N/A For Group Subscriber'
)
dbase.session.add(package)
dbase.session.commit()
return redirect('/profile')
使用上面的代码,它会创建两个数据库条目。实际上我试过elif,但无法使它工作。 请指教。
答案 0 :(得分:0)
如何简单地进行优惠券检查if cp and my_school not in waiverlist
甚至可以更好地将两个条件代码块转换为函数。然后只使用条件检查调用优惠券功能,该条件检查将返回对学校功能的调用:
# I don't know what other variables you'd need, so kwargs
def register_with_coupon(school, **kwargs):
if school in waiver_list:
return register_with_school()
#insert with coupon