IntegrityError al insertar datos en una tabla de asociación usando SQLAlchemy

Estoy tratando de insertar los datos del rol en esta tabla de asociación:

class Association(db.Model):
    __tablename__ = 'associations'
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), primary_key=True)
    team_id = db.Column(db.Integer, db.ForeignKey('teams.id'), primary_key=True)
    role = db.Column(db.String)
    user = db.relationship("User", back_populates="teams")
    team = db.relationship("Team", back_populates="users")

Está vinculado a otras 2 tablas:

class User(db.Model, UserMixin):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String)
    username = db.Column(db.String, nullable=False, unique=True, index=True)
    password_hash = db.Column(db.String)
    teams = db.relationship("Association", back_populates="user")

class Team(db.Model):
    __tablename__ = 'teams'
    id = db.Column(db.Integer, primary_key = True)
    name = db.Column(db.String)
    player = db.Column(db.String)
    users = db.relationship("Association", back_populates="team")

Sin embargo, cuando intento insertar el rol en la tabla de asociación:

t = Team.query.filter_by(id=team_name1_id).first()
a = Association(role=form.role.data)
a.user = User.query.filter_by(id=current_user.id).first()
t.users.append(a)
db.session.add(t)
db.session.commit()

Me sale este error:

IntegrityError: (generado como resultado del autoincrustamiento invocado por consulta; considere usar un bloque session.no_autoflush si este vaciado ocurre prematuramente) (sqlite3.IntegrityError) NO restricción NULL fallida: association.team_id [SQL: u'INSERT INTO association (user_id , rol) VALORES (?,?) '] [parámetros: (1, u'point guard')]

¿Sabes cómo puedo solucionarlo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta