dm_scripts = ArrayField(models.TextField(blank=True, null=True), default=list)
我有一个Django模型,我想使用ArrayField来存储TextFiles列表。顺序很重要,有人要求我允许用户重新排序。你会怎么做?
我已经在这里搜索和搜索,但是什么也没找到。甚至Django的官方文档也没有提到这一点。
答案 0 :(得分:0)
我知道这个问题很旧,但是我一直在寻找答案,找到了一个答案,并认为我会发布解决方案,以防其他人使用它
Django Postgres ArrayField本质上是一个列表(至少在您的情况下如此),因此像object.dm_scripts
一样访问它之后,就可以像其他任何列表一样对其进行操作。例如,如果您需要按字母顺序排序,则可以调用:
ordered_array = sorted(object.dm_scripts)
ordered_array.save()
此后,列表项将保持该顺序。您可以调用该视图并将其应用到视图中的def save
方法或其他任何需要的地方。
这取决于您的想象力。实现方式实际上取决于UX交互。我认为将列表传递到javascript前端很容易,让用户直观地对其重新排序,然后将新的订单应用于列表项(或者可以肯定是更多优化的方法)。