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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

產(chǎn)品變體未反映 Django 電子商務(wù)項(xiàng)目中訂單摘要中的更新數(shù)量

產(chǎn)品變體未反映 Django 電子商務(wù)項(xiàng)目中訂單摘要中的更新數(shù)量

慕勒3428872 2023-04-18 17:20:42
我對(duì)訂單摘要頁(yè)面中的變體和與之相關(guān)的數(shù)量有疑問(wèn)。當(dāng)我將 2 件商品添加到購(gòu)物車時(shí):小號(hào)商品 X 數(shù)量:1中號(hào)商品 X 數(shù)量:1當(dāng)我更改商品 X 尺寸中號(hào)的數(shù)量時(shí),此更改反映在首先選擇的商品 X 尺寸小號(hào)中。要像這樣:小號(hào)商品 X 數(shù)量:2中號(hào)商品 X 數(shù)量:1在訂單匯總中,模板中有加號(hào)和減號(hào)可以更改數(shù)量。我最近明白了,因?yàn)槟0逯袥](méi)有表格。將帶有表單數(shù)據(jù)的 POST 請(qǐng)求發(fā)送到添加到購(gòu)物車視圖的代碼不存在,因?yàn)?item_var 將始終是一個(gè)空列表,因此 order_item.variation.add(*item_var) 什么都不做。我不知道如何向該模板添加 POST 請(qǐng)求。在模板中有一個(gè)添加到購(gòu)物車的 URL”,但 URL 是通過(guò) GET 傳輸?shù)?,因?if request.method == 'POST': 之后的代碼永遠(yuǎn)不會(huì)命中。此外,即使它會(huì)命中,add_to_cart url 也知道與變化無(wú)關(guān),因?yàn)樗粫?huì)獲得物品彈頭。這是模板:    <main>        <div class="container">        <div class="table-responsive text-nowrap" style="margin-top:90px">        <h2> Order Summary</h2>        <table class="table">            <thead>            <tr>                <th scope="col">#</th>                <th scope="col">Item Title</th>                <th scope="col">Price</th>                <th scope="col">Quantity</th>                <th scope="col">Size</th>                 <th scope="col">Total Item Price</th>            </tr>            </thead>            <tbody>            {% for order_item in object.items.all %}            <tr>                <th scope="row">{{ forloop.counter }}</th>                <td>{{ order_item.item.title }}</td>                <td>{{ order_item.item.price }}</td>                <td>                <a href="{% url 'core:remove-single-item-from-cart' order_item.item.slug %}"><i class="fas fa-minus mr-2"></a></i>                {{ order_item.quantity }}                <a href="{% url 'core:add-to-cart' order_item.item.slug %}"><i class="fas fa-plus ml-2"></a></i>                </td>                                <td>                {% if order_item.variation.all %}                {% for variation in order_item.variation.all %}                {{ variation.title|capfirst }}                {% endfor %}                {% endif %}                </td> 
查看完整描述

3 回答

?
叮當(dāng)貓咪

TA貢獻(xiàn)1776條經(jīng)驗(yàn) 獲得超12個(gè)贊

當(dāng)然,對(duì)于 django 來(lái)說(shuō),這兩個(gè)項(xiàng)目是相同的。

負(fù)責(zé)此的行是:

if?order_item_qs.exists():
????order_item?=?order_item_qs.first()??#?Here,?you?are?always?picking?the?first?item?that?your?filter?returned,?see:?https://docs.djangoproject.com/en/dev/ref/models/querysets/#first
????order_item.quantity?+=?1
????order_item.save()

第一的()?

返回查詢集匹配的第一個(gè)對(duì)象,如果沒(méi)有匹配的對(duì)象則返回 None 。如果 QuerySet 沒(méi)有定義排序,則查詢集自動(dòng)按主鍵排序。這會(huì)影響聚合結(jié)果,如與默認(rèn)排序或 order_by() 的交互中所述。

然而,罪魁禍?zhǔn)资牵?/p>

order_item_qs?=?OrderItem.objects.filter(
????item=item,
????user=request.user,
????ordered=False)

你想將變化傳遞給它,例如

order_item_qs?=?OrderItem.objects.filter(
????item=item,
????user=request.user,
????ordered=False,
????variation=variation
)

您可以考慮將尺碼添加為產(chǎn)品字段,并根據(jù)變體創(chuàng)建單獨(dú)的產(chǎn)品。但是,簡(jiǎn)單地檢索變體并確保僅通過(guò)將其傳遞給 filter() 來(lái)增加正確的項(xiàng)目也是一種正確的方法。


查看完整回答
反對(duì) 回復(fù) 2023-04-18
?
德瑪西亞99

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊

order_item_qs = order_item_qs.filter(

            Q(item_variations__exact=v)

        )


with:

order_item_qs = order_item_qs.filter(item_variations__variation=v)


查看完整回答
反對(duì) 回復(fù) 2023-04-18
?
智慧大石

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊

我認(rèn)為問(wèn)題在塊


if order_item_qs.exists():

        order_item = order_item_qs.first()

        order_item.quantity += 1

        order_item.save()

此代碼塊僅在您需要將其重寫(xiě)為


if len(item_var) > 0:

   for items in item_var:

      order_item_qs = OrderItem.objects.filter(

        item=item,

        user=request.user,

        ordered=False

    ).filter(variation__exact=items,)


      if order_item_qs.exists():

          order_item = order_item_qs.first()

          order_item.quantity += 1

          order_item.save()

      else:

          order_item = OrderItem.objects.create(

             item=item,

            user=request.user,

            ordered=False

        )

          order_item.variation.add(*item_var)

          order_item.save()

    ```


查看完整回答
反對(duì) 回復(fù) 2023-04-18
  • 3 回答
  • 0 關(guān)注
  • 173 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

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