第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Django:序列化QuerySet并將其發(fā)送到模板以與Javascript一起使用

Django:序列化QuerySet并將其發(fā)送到模板以與Javascript一起使用

Qyouu 2019-04-11 13:15:01
我有一個QuerySet,我需要將它發(fā)送到我的模板,因為我需要操縱它的值來生成一個JS數(shù)組。但在我看來,我使用: order_items = json.dumps(order_items)我明白了:Object of type QuerySet is not JSON serializable視圖:import jsondef thanks_deposit_payment(request):    order_number = Order.objects.latest('id').id    total = Order.objects.latest('id').total    costo_despacho = Order.objects.latest('id').shipping_cost    order_items = OrderItem.objects.filter(order=Order.objects.latest('id'))    # order_items = json.dumps(order_items)    response = render(request, 'thanks_deposit_payment.html', dict(order_number=order_number, total=total,                                                                   order_items=order_items, costo_despacho=costo_despacho))    return responsemodels.py:class OrderItem(models.Model):    order = models.ForeignKey(Order, on_delete=models.CASCADE)    product = models.CharField(max_length= 200)    quantity = models.CharField(max_length= 200)    size = models.CharField(max_length=200)    price = models.DecimalField(max_digits=10, decimal_places=2, verbose_name= 'PEN Price')    file = models.FileField(upload_to='files', blank=True, null=True)    comment = models.CharField(max_length=200, blank=True, null=True, default='')    uploaded_at = models.DateTimeField(auto_now_add=True)    class Meta:        db_table = "OrderItem"我需要使用從后端發(fā)送的order_items中的項來生成products數(shù)組: <script>        window.dataLayer = window.dataLayer || [];        window.dataLayer.push({            event: 'eec.purchase',            ecommerce: {                currencyCode: 'PEN',                purchase: {                    actionField: {                        id: {{ order_number }},                        affiliation: 'Stickers Gallito E-Commerce',                        revenue: {{ total }},                        shipping: {{ costo_despacho }},                        coupon: 'SUMMER2019'                    }                },                products: [
查看完整描述

2 回答

?
拉風的咖菲貓

TA貢獻1995條經(jīng)驗 獲得超2個贊

您可以使用Django JSON Serializer將queryset轉(zhuǎn)換為JSON String:


from django.core.serializers import serialize

order_items = OrderItem.objects.filter(order=Order.objects.latest('id'))

order_items = serialize('json', order_items, fields=['id', 'product', 'price'])? # the fields needed for products

然后在模板中使用它:


?products: JSON.parse('{{ order_items | safe }}')


查看完整回答
反對 回復 2019-05-17
?
墨色風雨

TA貢獻1853條經(jīng)驗 獲得超6個贊

試試這個:


def thanks_deposit_payment(request):

 order_number = Order.objects.latest('id').id

 total = Order.objects.latest('id').total

 costo_despacho = Order.objects.latest('id').shipping_cost

 order_items = OrderItem.objects.filter(order=Order.objects.latest('id'))


 return JSONResponse(...here goes the dict with all data to send to view)

甚至,如果你想發(fā)送所有這個查詢集,你可以在dict中發(fā)送一個dict。)稍后,我建議你使用AJAX和JQuery。


查看完整回答
反對 回復 2019-05-17
  • 2 回答
  • 0 關(guān)注
  • 1272 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號