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

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

使用 ManToManyField() 在 Django 中創(chuàng)建購物車

使用 ManToManyField() 在 Django 中創(chuàng)建購物車

精慕HU 2023-04-11 16:08:42
我的模型中有三個類別,每個類別都有價格。我想創(chuàng)建 Cart 對象。我如何使用 ManToManyField 在一個 CartItem 中傳遞所有 3 個。models.pyclass Women(models.Model):    photo = models.ImageField(upload_to='media')    title = models.CharField(max_length=20)    description = models.CharField(max_length=150)    price = models.IntegerField()    objects = models.manager    def __str__(self):        return self.title    class Meta:        verbose_name_plural = 'Women'class Men(models.Model):    photo = models.ImageField(upload_to='media')    title = models.CharField(max_length=20)    price = models.IntegerField()    description = models.CharField(max_length=150)    objects = models.manager    def __str__(self):        return self.title    class Meta:        verbose_name_plural = 'Men'class Kids(models.Model):    photo = models.ImageField(upload_to='media')    title = models.CharField(max_length=20)    price = models.IntegerField()    description = models.CharField(max_length=150)    objects = models.manager    def __str__(self):        return self.title    class Meta:        verbose_name_plural = 'Kids'我想創(chuàng)造類購物車(模型。模型):和類 CartItem(模型。模型):
查看完整描述

1 回答

?
莫回?zé)o

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

如果所有三個模型都具有相同的屬性,表示相同的對象,但它只改變了對象的“類別”,那么為什么不只創(chuàng)建一個具有您選擇類型的類別的模型呢?如果將來有必要,您將能夠擴展到許多其他類別:


class Item(models.Model):

    # add the choices:

    WOMEN = "W"

    MEN = 'M'

    KIDS = "K"

    SIGNED = "SI"

    TYPE = (

        (WOMEN, 'Women'),

        (MEN, 'Men'),

        (KIDS, 'Kids'),

    )

    photo = models.ImageField(upload_to='media')

    title = models.CharField(max_length=20)

    description = models.CharField(max_length=150)

    price = models.IntegerField()

    objects = models.manager

    type = models.CharField(max_length=1, choices=TYPE, default=WOMEN, )


    def __str__(self):

        return self.title

使用此代碼,您將能夠?qū)λ许椖窟M行排序,type以獲取每個模型:


women_items = Item.objects.filter(type="W")  # women items

men_items = Item.objects.filter(type="M")  # women items

kids_items = Item.objects.filter(type="K")  # women items

您還需要知道,當(dāng)您type在模板上打印屬性時{{item.type}},您將在列表中看到文本TYPE。


這將使您更容易獲得所需的東西,因此您只需要參考ItemM2M 關(guān)系上的模型。


我與購物車關(guān)系不大,但這可能是您要找的:


class CartItem(models.Model):

    item = models.ManyToManyField(Item)

    amount = models.PositiveIntegerField(default=1)


class Cart(models.Model):

    cart_item = models.ManyToManyField(CartItem)


查看完整回答
反對 回復(fù) 2023-04-11
  • 1 回答
  • 0 關(guān)注
  • 100 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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