私はデータベースとしてPostgreSQLを使用している単純なフラスコアプリケーションを作成しようとしています。私は、ボタンをクリックしたときに、テーブルの行を更新しようとしていますが、それは私に次のエラーPostgreSQLで更新クエリを実行中にsqlalchemy.exc.DataError
DataError: (psycopg2.DataError) invalid input syntax for integer: "125/" LINE 1: ...ATE tasks SET taskname='IamUpdated' WHERE tasks.uid = '125/'^[SQL: 'UPDATE tasks SET taskname=%(taskname)s WHERE tasks.uid = %(uid_1)s'] [parameters: {'taskname': 'IamUpdated', 'uid_1': u'125/'}]
を与えていることは、「/」グリッチなどの末尾に追加された場合、私はわからないか、そのようなことになっています?またはそれがエラーを引き起こす原因です。 助けてください。続き
は私のHTMLコードです
<form action="" method="POST">
<div ng-controller="myctrl" >
<table>
<caption> Todo List</caption>
<thead>
<tr>
<td>
<input type="text" name="text">
<input type="submit" value="Add Task" >
</td><td>
Search :<input type="text">
</td>
</tr>
<tr>
<th>Task Id</th>
<th>Task</th>
</tr>
</thead>
<tbody>
{% for user in User %}
<tr>
<td> {{ user.uid }} </td>
<td >{{ user.taskname }}
<input type="image" class="deleteImg" src="static/img/trash_can.png" height="15px" width="18px" name="removeId" value={{user.uid}} />
<input type="image" src="static/img/editbtn.svg" height="15px" width="18px" name="editId" value={{user.uid}}/>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<script>
var app = angular.module("app", ['xeditable']);
app.controller('myctrl', function($scope) {
$scope.myname="Howdy";
});
app.config(function($interpolateProvider) {
$interpolateProvider.startSymbol('//').endSymbol('//');
});
app.run(function(editableOptions) {
editableOptions.theme = 'bs3'; // bootstrap3 theme. Can be also 'bs2', 'default'
});
</script>
</form>
</body>
後、私のフラスコPythonコード
edituser = request.form.getlist('editId')
if edituser:
for e in edituser:
User.query.filter_by(uid=e).update(dict(taskname="IamUpdated"))
db.session.commit()
return render_template("index.html",User=User.query.all())
です
editIdがどこから来ているかを確認する必要があります。あなたのテンプレートに誤りがあると思われます。 – Shadow
@ shadow私がHTMLコード – Prasanna