0
Я пытаюсь обновить строку в базе данных, но она не работает. Я не знаю, где бы я ошибся.Строка обновления флажка-SQLAlchemy с request.form
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1461, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/var/www/demo/demo.py", line 466, in dodajk1
record.si = request.form['si']
AttributeError: 'NoneType' object has no attribute 'si'
Мой models.py
class CC1(dbu.Model):
__tablename__ = 'cc1'
id = dbu.Column('id',dbu.Integer, primary_key = True)
si = dbu.Column('si', dbu.Float)
snd = dbu.Column('snd', dbu.Float)
snh = dbu.Column('snh', dbu.Float)
sno = dbu.Column('sno', dbu.Float)
so = dbu.Column('so', dbu.Float)
ss = dbu.Column('ss', dbu.Float)
xa = dbu.Column('xa', dbu.Float)
xh = dbu.Column('xh', dbu.Float)
xi = dbu.Column('xi', dbu.Float)
xnd = dbu.Column('xnd', dbu.Float)
xp = dbu.Column('xp', dbu.Float)
xs = dbu.Column('xs', dbu.Float)
def __init__(self,si,snd,snh,sno,so,ss,xa,xh,xi,xnd,xp,xs):
self.si = si
self.snd = snd
self.snh = snh
self.sno = sno
self.so = so
self.ss = ss
self.xa = xa
self.xh = xh
self.xi = xi
self.xnd = xnd
self.xp = xp
self.xs = xs
И наконец view.py:
@app.route('/dodajk1', methods=['POST'])
def dodajk1():
if request.form['przycisk'] == 'Submit':
record = dbu.session.query(CC1).get(1)
record.si = request.form['si']
record.snd = request.form['snd']
record.snh = request.form['snh']
record.sno = request.form['sno']
record.so = request.form['so']
record.ss = request.form['ss']
record.xa = request.form['xa']
record.xh = request.form['xh']
record.xi = request.form['xi']
record.xnd = request.form['xnd']
record.xp = request.form['xp']
record.xs = request.form['xs']
dbu.session.commit()
return redirect(url_for('k1'))
ошибка говорит, что '' record' является None', а не форма. В качестве основного ключа нет записи с '1'. – dirn
Любая идея, как это исправить? – emilkaanna
Без понимания вашего приложения, нет. Вы намеренно обновляете только одну запись или передаете идентификатор в форме? Вы используете эту форму для создания новых записей или просто редактирования? – dirn