2017-03-27 2 views
0

Ich habe zwei Arten der Registrierung und kann nicht herausfinden, was, wenn zufällig Benutzer beide wählt. Grundsätzlich möchte ich eine der Logik priorisieren, falls der Benutzer beide Möglichkeiten hat. Im Folgenden finden Sie die Erklärung und die Bedingungen, die ich zu programmieren versuche.Flask/Python die vorhandene Logik bedingt

  1. Benutzer können sich bei den Schulen anmelden, die sich kostenlos registrieren lassen.
  2. Benutzer kann auch registrieren, wenn er/sie den Gutschein hat.
  3. Wenn die Schule des Benutzers in der Liste ist und der Benutzer einen Gutschein hat, dann sollte er im Namen der Universität registriert werden und der Gutschein wird nicht vom Backend verwendet.

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

Mit über Code erstellt es zwei Datenbankeinträge. Eigentlich habe ich es mit elif versucht, aber es konnte nicht funktionieren. Bitte beraten.

Antwort

0

Was einfach machen den Gutschein Scheck if cp and my_school not in waiverlist

Oder noch besser beide bedingten Code-Blöcke in Funktionen machen. Rufen Sie die Couponfunktion dann nur mit einer Bedingungsprüfung auf, die einen Anruf an die Schulfunktion zurückgibt:

# 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