gpt4 book ai didi

python - 如何存储动态可变数量的对象的顺序(在 python 中)?

转载 作者:行者123 更新时间:2023-11-29 13:22:51 25 4
gpt4 key购买 nike

假设我想问一个用户一个问题:“从最大到最小排列以下动物”。这是一个稍微简化的 django:

class Question(models.Model):
text = models.CharField() #eg "Order the following animals..."

class Image(models.Model):
image = models.ImageField() #pictures of animals
fk_question = models.ForeignKey(Question)

现在我可以为每个 Question 分配可变数量的 Image,并自定义问题文本。是的。

记录响应的合适方式是什么?显然,我需要 UserQuestion 的外键:

class Response(models.Model):
fk_user = models.ForeignKey(User)
fk_question = models.ForeignKey(Question)

但现在我卡住了。如何优雅地记录此 User 指定的 Image 对象的顺序?

编辑:我正在使用 Postgres 9.5

最佳答案

我通常强烈反对在列中存储逗号分隔的数据。然而,这似乎是一个异常(exception)!我可以求婚CommaSeparatedIntegerField

class CommaSeparatedIntegerField(max_length=None, **options)[source]¶
A field of integers separated by commas. As in CharField, the max_length argument is required and the note about database portability mentioned there should be heeded.

这本质上是一个字符字段,因此您输入的顺序将保留在数据库中。

您没有提到您的数据库。如果您有幸使用 Postgresql 并使用 django 1.9,您也可以使用 ArrayField。

使用 arrayfield 会好得多,因为这样就不会在字符串和列表之间来回转换。反对逗号分隔字段的情况是搜索很困难,你不能轻易地提取第 N 个元素。 POStgresql 数组消除了后者的困难。

关于python - 如何存储动态可变数量的对象的顺序(在 python 中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38724002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com