Solution
def __init__(self, username, *args, **kwargs):
super(SongForm, self).__init__(*args, **kwargs)
self.album = SelectField("Album", choices=Album.get_albums(username), validate_choice=True )
self.album.label = 'Album' # here is your error
name = StringField("Name", validators=[DataRequired(),Length(max=40)])
# within the form class
self.album.label = Label(self.album.id, 'Album Name')
# or on a form instance
form2.album.label = Label(form2.album.id, 'Album Name')
class SongForm(FlaskForm):
name = StringField("Name", validators=[DataRequired(),Length(max=40)])
cover = StringField("Cover", validators=[DataRequired(),Length(max=120)])
content = StringField("Content", validators=[DataRequired(),Length(max=120)])
release_date = DateField("Release Date", validators=[DataRequired()])
genre = SelectField("Genre")
album = SelectField("Album", validate_choice=True)
@artist.route('/insertsong', methods=['GET','POST'])
@login_required
def insertsong():
form = ModifyProfileForm() # <-- don't mind this form will be removed later
form2 = SongForm()
# Set your choices at runtime
form2.genre.choices = Genre.list
form2.album.choices = Album.get_albums(username)
return render_template('insertsong.html', form = form, form2=form2, user = current_user)