Flask / Python有条件地否定现有逻辑

时间:2017-03-27 22:58:51

标签: python flask

我有两种类型的注册,无法弄清楚如果用户偶然选择两者。基本上我想优先考虑其中一个逻辑,以防用户同时拥有这两个选项。以下是我试图编码的解释和条件。

  1. 用户可以注册免费注册的学校。
  2. 如果他/她有优惠券,用户也可以注册。
  3. 如果用户的学校在列表中且用户有优惠券,那么他应该代表大学注册,优惠券将不会被后端使用。

        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')
    
  4. 使用上面的代码,它会创建两个数据库条目。实际上我试过elif,但无法使它工作。 请指教。

1 个答案:

答案 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
相关问题