python - Django:我怎样才能获得一个模型来存储鞋子尺寸的列表(例如Python或无论如何)

标签 python django python-3.x django-models

请原谅我的英语 我是 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/

相关文章:

python - 如何使用来自 python 的请求使用 opencv 从 url 打开图像

python - 如何正确关闭 PyQt 的 QtApplication?

当我运行 python manage.py syncdb 时,Django 避免在数据库中创建 PointField

javascript - 如何将音频 Blob 传递到 Django 后端和服务器?

python - 跟踪玩家健康基于文本的游戏 - Python

python - 如何推迟/推迟 f 弦的评估?

python - 有什么方法可以缩短这个日期的长度而不必运行 date() 吗?

python - Django:ValueError:尝试在干净的环境中创建时无法在 ForeignField 上分配任何内容失败

python - Beautiful Soup findAll 没有找到所有的

python - 如何从 base64 编码的字符串创建临时文件?