Как управлять flask аккаунтами, чтобы при входе в систему разным пользователям показывались разные данные? - PullRequest
1 голос
/ 06 августа 2020

Я хочу, чтобы при входе человека в / MyEmployees он находил его уникальный список с сотрудниками

class User(db.Model, UserMixin):
               id = db.Column(db.Integer, primary_key=True)
               name = db.Column(db.String(100))
               email = db.Column(db.String(100), unique=True)
               password = db.Column(db.String(100))
       
           def __init__(self, name, email, password):
               self.name = name
               self.email = email
               self.password = password
       
       
class Data(db.Model):
   id = db.Column(db.Integer, primary_key=True)
   name = db.Column(db.String(100))
   email = db.Column(db.String(100))
   phone = db.Column(db.String(100))

   def __init__(self, name, email, phone):
       self.name = name
       self.email = email
       self.phone = phone

@login_manager.user_loader
def load_user(user_id):
   return User.query.get(int(user_id))

Метод входа


#login method
@app.route("/login", methods=["POST", "GET"])
def login():
    if request.method == "POST":
        email = request.form.get("email")
        password = request.form.get("password")

        user = User.query.filter_by(email=email, password=password).first()

        if user:
            login_user(user)
            return redirect(url_for("profile", usr=current_user.name))
        else:
            return f"<p>wrong password or email</p>"
    else:
        return render_template("login.html")

Отображать добавленных сотрудников

@app.route("/MyEmployees", methods=["POST", "GET"])
@login_required
def myemployees():
    all_data = Data.query.all()
    return render_template("myemployees.html", employees=all_data)

Вот функция вставки новых членов в список

@app.route('/insert', methods=['POST'])
@login_required
def insert():
    if request.method == 'POST':
        name = request.form['name']
        email = request.form['email']
        phone = request.form['phone']

        my_data = Data(name, email, phone)
        db.session.add(my_data)
        db.session.commit()

        flash("Employee Inserted Successfully")

        return redirect(url_for("myemployees"))

Проблема в том, что теперь у каждого пользователя один и тот же список сотрудников. Я хочу управлять разными учетными записями с разными хранящимися в них данными, например, членами компании.

1 Ответ

0 голосов
/ 06 августа 2020

Вы упомянули myemployees. Означает ли это, что у вас есть пользователи с профилем менеджера? в таком случае у вас должна быть связь в таблице пользователей, которая показывает, кто чей менеджер. Используйте self_referential , чтобы добавить связь. Затем для каждого пользователя вы можете отфильтровать только тех пользователей, у которых есть менеджер в качестве текущего пользователя.

...