Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python flask管理员:如何获取当前用户';s的其他信息(除了id、姓名、电子邮件)?_Python_Flask_Flask Sqlalchemy_Flask Admin - Fatal编程技术网

Python flask管理员:如何获取当前用户';s的其他信息(除了id、姓名、电子邮件)?

Python flask管理员:如何获取当前用户';s的其他信息(除了id、姓名、电子邮件)?,python,flask,flask-sqlalchemy,flask-admin,Python,Flask,Flask Sqlalchemy,Flask Admin,我希望在创建项目时自动存储用户名和他的团队。这些类别的定义如下: class Team(db.Model, RoleMixin): id = db.Column(db.Integer(), primary_key=True) name = db.Column(db.String(80), unique=True) def __str__(self): return self.name class User(db.Model, UserMixin):

我希望在创建项目时自动存储用户名和他的团队。这些类别的定义如下:

class Team(db.Model, RoleMixin):
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(80), unique=True)

    def __str__(self):
       return self.name  

class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    first_name = db.Column(db.String(255))
    last_name = db.Column(db.String(255))
    email = db.Column(db.String(255), unique=True)
    teams = db.relationship('Team', secondary=teams_users,uselist=False,
                        backref=db.backref('users', lazy='dynamic'))

    def __str__(self):
       return self.first_name

 class Project(db.Model):

    id = db.Column(db.Integer, primary_key=True)
    team = db.Column(db.Unicode(64))
    developer = db.Column(db.Unicode(128))  

       def __unicode__(self):
          return self.developer
创建项目时,我使用以下内容存储当前用户的名字和团队:

     class ProjectView(sqla.ModelView):
        def on_model_change(self, form, model, is_created):
           if is_created:
             model.developer = current_user.first_name
             model.team = current_user.teams

用户名已正确保存,但团队未能保存。我还尝试存储
model.team=current\u user.email
model.team=current\u user.last\u name
model.team=current\u user.id
,所有操作都正常。不确定发生了什么,为什么无法存储
当前用户.teams
。谢谢。

因为
User.teams
不是
db.Column
,就像
Project.team
和其他字段一样,它是
db.relationship
,如果您想给它赋值,它必须是
team

因此,您必须执行以下操作:

class ProjectView(sqla.ModelView):
    def on_model_change(self, form, model, is_created):
        if is_created:
            model.developer = current_user.first_name
            model.team = Team(name=current_user.teams)

感谢您的回复,但出现了一个错误:
无法创建记录。(sqlite3.InterfaceError)绑定参数0时出错-可能是不支持的类型。[SQL:u'UPDATE project SET teams=?WHERE project.id=?'][parameters:(,23)]
oh yea,因为model.team是
Unicode
,所以您可以将
model.team
设置为团队名称
model.team=current_user.teams.name
现在使用
model.team=current_user.teams.name
,谢谢。