2017-03-27 5 views
0

私は2種類の登録を受け取りました。基本的には、ユーザーが両方のオプションを持っている場合にロジックの1つに優先順位をつけたいと思います。以下は、私がコードしようとしている説明と条件です。Flask/Pythonは条件付きで既存のロジックを拒否しています

  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') 
    

これは、2つのデータベースエントリを作成します。実際に私はelifで試しましたが、動作させることはできませんでした。 お知らせください。

答えて

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 
関連する問題