2016-11-25 59 views
0

我想添加用戶在組表中,我檢查用戶在所有組成員如果然後如果他已經在表中我閃爍的消息,如果不是我添加用戶羣組。但它只對第一個用戶有效。其餘的當您請求我不能在數據庫中添加更多然後一個用戶

classroomMembers = ClassroomMember.query.filter_by(user_id=user_id).all() 

classroomMembers記錄與user_id=user_id只有這些記錄得到的邏輯評估假

@main.route('/join-classroom/<int:classroom_id>/<int:user_id>/') 
@login_required 
def join_classroom(classroom_id, user_id): 
    classroom = Classroom.query.filter_by(id=classroom_id).first() 

if classroom is None: 
    flash('Invalid classname') 
    return redirect(url_for('main.classrooms')) 
else: 
# check if user aleady added or on request 
    classroomMembers = ClassroomMember.query.filter_by(user_id=user_id).all() 
    for classroomMember in classroomMembers: 
     if (classroomMember.user_id == user_id) and (classroomMember.classroom_id == classroom_id): 
      flash('You are already in Group ') 
      return redirect(url_for('main.classrooms')) 

     elif (classroomMember.user_id != user_id) and (classroomMember.classroom_id != classroom_id): 
      classroomMember = ClassroomMember(classroom_id=classroom_id, user_id=user_id) 
      db.session.add(classroomMember) 
      db.session.commit() 
      flash('Your request has been sent successfully') 
      return redirect(url_for('main.classrooms')) 

     elif classroomMember.user_id is None: 
      classroomMember = ClassroomMember(classroom_id=classroom_id, user_id=user_id) 
      db.session.add(classroomMember) 
      db.session.commit() 
      flash('Your request has been sent successfully') 
      return redirect(url_for('main.classrooms'))  

回答

0

。 這樣,只有第一個if子句可以是True,而其他兩個elif中的代碼永遠不會執行。

因此,您需要檢查一個組中是否有人加入,如果沒有。如果一個人不存在,就創建一個新人。舉例來說,像這樣:

classroomMembers = ClassroomMember.query.filter_by(user_id=user_id).all() 
if classroomMembers: 
    classroomMember = classroomMembers[0] 
    if classroomMember.classroom_id == classroom_id: 
     flash('You are already in Group ') 
     return redirect(url_for('main.classrooms')) 
    else: 
     classroomMember.classroom_id = classroom_id 
     db.session.add(classroomMember) 
     db.session.commit() 
     flash('You were added to the Group') 
     return redirect(url_for('main.classrooms')) 
else: 
    classroomMember = ClassroomMember(classroom_id=classroom_id, user_id=user_id) 
    db.session.add(classroomMember) 
    db.session.commit() 
    flash('Your request has been sent successfully') 
    return redirect(url_for('main.classrooms')) 
+0

我解決了這個問題 –

0

我解決了這個問題

@main.route('/join-classroom/<int:classroom_id>/<int:user_id>/') 

@login_required 高清join_classroom(classroom_id,USER_ID): 教室= Classroom.query.filter_by(ID = classroom_id)。一()

if classroom is None: 
    flash('Invalid classname') 
    return redirect(url_for('main.classrooms')) 

else: 
    classroomMember = ClassroomMember.query.filter_by(user_id=user_id).filter_by(classroom_id=classroom_id).first() 

    if classroomMember is None: 
     classroomMemberUser = ClassroomMember(classroom_id=classroom_id, user_id=user_id) 
     db.session.add(classroomMemberUser) 
     db.session.commit() 
     flash('Your request has been sent successfully') 
     return redirect(url_for('main.classrooms')) 

    else: 
     flash("You are already in the Group") 
     return redirect(url_for('main.classrooms')) 
相關問題