データベースから html ページにデータを読み込もうとしています。基本的に、ユーザーが自分のプロファイルにアクセスして [購入履歴] をクリックすると、データベースにクエリが実行され、ユーザーが購入したすべての製品が表示されます。
ajax と json を使用してこれを実行しようとしていますが、エラーが発生します。
TypeError: <gluon.dal.Field object at 0x091CCD90> is not JSON serializable
以下はコードです:
def prodHistoryJson():
productName = db.sale.title
productCost = db.sale.price
prodShipAdd = db.sale.shipping_address
prodShipCity = db.sale.shipping_city
prodShipState = db.sale.shipping_state
prodShipZipCode = db.sale.shipping_zip_code
myproducts = {'prodName':productName,
'cost':productCost,
'shipAdd':prodShipAdd,
'shipCity':prodShipCity,
'shipState':prodShipState,
'shipZipCode':prodShipZipCode}
import gluon.contrib.simplejson as json
returnData = json.dumps(myproducts)
return returnData
以下はjqueryです:
$.ajax( {
url:'/suzannecollins/onlineStore/prodHistoryJson',
data: { message: "Your products purchase history is listed below" },
success: function(msg) {
try {
myproducts=JSON.parse(msg);
}
catch(err) {
console.log(" error");
}
// place returned value in the DOM
$('#returnData').html(myproducts.title + myproducts.price + myproducts.shipping_address
+ myproduct.shipping_state + myproducts.shipping_city + myproducts.shipping_zip_code);
}
});
私は何を間違っていますか?ユーザーが purchase_History ボタンを押してデータベースにクエリを実行し、購入した製品を表示するという単純な方法でこれを行うだけで、これをすべて機能させることができます。上記のコードで同じことを行うにはどうすればよいですか?