It want user from gorm result. Change your method maybe like this:
// arg user is from gorm result somewhere func (d *DB) AddTODO(user *models.User, todo *models.Todo, userName string) error { err :=return d.db.Model(user).Association("TodoList"). Append([]models.Todo{*todo}) if err != nil { return err } return nil }