@app.route('/update/<id>',methods=['GET','POST'])
def update_user(id):
updateuser=CreateUserForm(request.form)
if request.method=='POST' and updateuser.validate():
db=shelve.open('user.db','w')
user=[]
user=db[id]
user.set_username(updateuser.username.data)
user.set_password(updateuser.password.data)
user.set_email(updateuser.email.data)
user.set_contact(updateuser.contact.data)
user.set_address(updateuser.address.data)
return redirect(url_for('retrieve_user'))
else:
db=shelve.open('user.db','r')
user=db[id]
updateuser.password.data=user.get_password()
updateuser.contact.data=user.get_contact()
updateuser.email.data=user.get_email()
updateuser.username.data=user.get_username()
updateuser.address.data=user.get_address()
return render_template('updatecreateuser.html',updateuser=updateuser)
'Ошибка типа: init () принимает от 1 до 2 позиционных аргументов, но 3 задано'. Привет всем. Извините за беспокойство. Мой учитель назначил нам это задание. В строке validate () в строке 4 всегда отображается ошибка. Могу ли я узнать, что это за ошибка?
[2020-02-01 14:11:51,076] ERROR in app: Exception on /update/7bffa7fc-0815-48ae-a773-e16d8ab1ffe5 [POST]
Traceback (most recent call last):
File "C:\Program Files\Python37\lib\site-packages\flask\app.py", line 2446, in wsgi_app
response = self.full_dispatch_request()
File "C:\Program Files\Python37\lib\site-packages\flask\app.py", line 1951, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Program Files\Python37\lib\site-packages\flask\app.py", line 1820, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\Program Files\Python37\lib\site-packages\flask\_compat.py", line 39, in reraise
raise value
File "C:\Program Files\Python37\lib\site-packages\flask\app.py", line 1949, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Program Files\Python37\lib\site-packages\flask\app.py", line 1935, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "C:/NYP/year 1/Sem 2/People's_file/Login/simplaeapplication.py", line 75, in update_user
if request.method=='POST' and updateuser.validate():
File "C:\Program Files\Python37\lib\site-packages\wtforms\form.py", line 310, in validate
return super(Form, self).validate(extra)
File "C:\Program Files\Python37\lib\site-packages\wtforms\form.py", line 152, in validate
if not field.validate(self, extra):
File "C:\Program Files\Python37\lib\site-packages\wtforms\fields\core.py", line 206, in validate
stop_validation = self._run_validation_chain(form, chain)
File "C:\Program Files\Python37\lib\site-packages\wtforms\fields\core.py", line 226, in _run_validation_chain
validator(form, self)
TypeError: __init__() takes from 1 to 2 positional arguments but 3 were given
127.0.0.1 - - [01/Feb/2020 14:11:51] "POST /update/7bffa7fc-0815-48ae-a773-e16d8ab1ffe5 HTTP/1.1" 500 -
from wtforms import Form, StringField, RadioField, SelectField, TextAreaField, validators, BooleanField,PasswordField
class CreateUserForm(Form):
username = StringField('UserName', [validators.Length(min=1,max=150), validators.DataRequired()])
password = PasswordField('New Password', [validators.InputRequired(), validators.EqualTo('confirm', message='Passwords must match')])
confirm = PasswordField('Repeat Password')
email=StringField('Email:',[validators.Email,validators.DataRequired()])
contact=StringField('Contact',[validators.DataRequired()])
address=TextAreaField('Address:',[validators.DataRequired()])