1 回答

TA貢獻1865條經驗 獲得超7個贊
如果所有三個模型都具有相同的屬性,表示相同的對象,但它只改變了對象的“類別”,那么為什么不只創建一個具有您選擇類型的類別的模型呢?如果將來有必要,您將能夠擴展到許多其他類別:
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
使用此代碼,您將能夠對所有項目進行排序,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
您還需要知道,當您type在模板上打印屬性時{{item.type}},您將在列表中看到文本TYPE。
這將使您更容易獲得所需的東西,因此您只需要參考ItemM2M 關系上的模型。
我與購物車關系不大,但這可能是您要找的:
class CartItem(models.Model):
item = models.ManyToManyField(Item)
amount = models.PositiveIntegerField(default=1)
class Cart(models.Model):
cart_item = models.ManyToManyField(CartItem)
添加回答
舉報