请原谅我的英语 我是 django 的初学者,我想在我的模型和表单中实现这一目标:
这种情况就像在亚马逊上购买鞋子一样: 1.鞋子有尺码列表供用户选择 2.用户选择并添加到购物车 3. 用户下订单,订单保存在包含相应尺寸的模型中
现在想象一下,鞋子卖家在销售时可以在 python size = [1, 2, 3, 4] 中输入这样的尺寸列表,该列表也保存在鞋子模型中
如何在 django 中实现这一点,以及如何将输入的尺寸列表保存到模型中,但卖家如何显示此列表,以便用户只能选择此列表中的一个值?
请帮忙
最佳答案
听起来您想让卖家指定其商品提供的尺寸,然后让用户选择其中一种尺寸。并且尺寸需要遵循一定的模式,例如[1,2,3,4,...11,12]。是这样吗?
choices选项可以让您为每个对象选择一个尺寸,但如果您想让每个对象有多个尺寸,那还不够。
这听起来像是 many-to-many relation 的候选者。产品表和尺码表之间。在尺码表中,您可以为商店提供的每种鞋码创建一个条目,例如 6 号、7 号等:
class Size(models.Model):
foot_size = models.IntegerField()
gender = models.CharField(choices=(('F', 'Female'), ('M', 'Male'), ('U', 'Ungendered')))
# Sample to create a size
s1 = Size(foot_size=6, gender='F')
s1.save()
s2 = Size(foot_size=7, gender='F')
s2.save()
然后,在“产品”模型中,添加“尺寸”字段,例如
sizes = models.ManyToManyField(Size, help_text="Sizes of the product that are offered.")
然后您可以按如下方式创建新产品:
sizes = Size.objects.filter(foot_size__in=[6, 7], gender='F')
p = Product(sizes=sizes)
p.save()
然后,产品 p
将与两种女性脚码相关联:6 和 7。这样,当卖家创建产品时,他们可以指定提供哪些尺码 - 并且在您的表单,这将自动填充数据库中的所有 Size 对象。然后,当客户购买产品时,他们会指定该产品提供的尺寸之一。
您可以根据需要扩展尺寸模型或产品模型以容纳更多产品,但可能越简单越好。希望这可以帮助您入门,并查看有关多对多关系的 Django 文档的链接,了解更多使用它的方法。
关于python - Django:我怎样才能获得一个模型来存储鞋子尺寸的列表(例如Python或无论如何),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45947457/