我正在创建一个在线商店。我需要创建一个产品模型并将信息存储在其中。
class Product(models.Model):
title = models.CharField('Название', max_length=250)
item = models.ManyToManyField('ItemProduct',blank=True,verbose_name='Предмет продукта')
class ItemProduct(model.Model):
title = models.CharField('Название', max_length=250)
item = models.TextField('Продукт')
class Profile(models.Model):
""" Профиль пользователя """
user = models.OneToOneField(User, on_delete=models.CASCADE, verbose_name="Пользователь")
orders = models.ManyToManyField(ItemProduct, blank=True, verbose_name='Покупки')
这是模型的一个例子。
逻辑:我有一个产品,它包含一组(5 件、6 件等)ItemProduct。我需要从产品中取消链接并附加到配置文件。也就是说,一个人购买了一个 Windows 密钥,并且在他的个人资料中出现了一行(ItemProduct --> title)。同时,Product 和 ItemProduct 之间的联系被打破,以至于一个人无法购买相同的型号。
如果您需要更改模型,请举一个例子(什么是连接以及什么之间)。
我会
MenyToMeny
通过指定.ForeignKey
_Product
_ 这样,您将拥有 1 个仅与 1 个对象关联的键。Profile
ItemProduct
related_name
因此,在购买之后,密钥从购买选项中消失,在
save
方法或pre_save
信号中,如果指定了用户(购买了产品),ItemProduct
例如从 (product=None) 中删除链接。您可以参考
ItemProduct
此示例中的其他模型,如下所示:Product
-product_obj.items.all()
,Product.objects.filter(items__title='....')
Profile
-profile_obj.items.all()
,Profile.objects.filter(orders__title='....')