Ich habe viele Themen hier auf SO gefunden, die damit zusammenhängen, aber keiner von ihnen hilft, das Problem zu lösen, vor dem ich stehe. Ich verstehe, dass in meinem Code irgendwo eine Funktion erwartet wird, aber es stattdessen Zeichenfolge erhält.TypeError: 'str' ist nicht aufrufbar (Flask form validation)
Relevante Code:
class UserRegistrationForm(Form):
photo = FileField('', validators=[DataRequired()])
country = SelectField('','Select Country', choices=countries)
first_name = StringField('',[validators.Length(min=1,max=20), DataRequired()])
middle_name = StringField('',[validators.Length(min=1,max=20), DataRequired()])
last_name = StringField('',[validators.Length(min=1,max=20), DataRequired()])
dob = DateField('',format='YYYY-MM-DD', validators=[DataRequired()])
address = TextAreaField('', validators=[DataRequired()])
email = EmailField('', validators=[DataRequired(), Email()])
mobile_number = StringField('', validators=[DataRequired()])
password = PasswordField('', validators=[DataRequired()])
@app.route('/signup', methods=['GET', 'POST'])
def signup():
form = UserRegistrationForm(request.form)
if request.method == 'POST' and form.validate(): # here's where the error is coming from
file_name = request.files.getlist('photo')
if file_name[-4:] not in ALLOWED_EXTENSIONS:
flash('Invalid Image Type.')
else:
file_name = file_name.filename
destination = '/'.join([TARGET, file_name])
file_name.save(destination)
country = form.country.data
first_name = form.first_name.data
middle_name = form.middle_name.data
last_name = form.last_name.data
dob = form.dob.data
address = form.address.data
email = form.email.data
mobile_number = form.mobile_number.data
password = sha256_crypt.encrypt(str(form.password.data)) # according to tutorial the string conversion here is correct.
Irgendwelche Gedanken darüber, warum ich diesen Fehler bin immer? Daran habe ich stundenlang festgemacht.
Nun ... Ich habe es behoben und ich habe neue Fehler, aber es ist zumindest etwas, das ich reparieren kann. Flask ist großartig, aber macht keinen guten Job, um genau zu sagen, wo der Fehler liegt. Danke für die Überprüfung meines Codes @notenness –
@MarkAlexa Gern geschehen! :) – noteness