如何解决Django:如何为子弹场获得正确的数值排序?
弹头字段定义和模型排序如下所示。
来自models.py:
class Ayah(models.Model):
suraya = models.SlugField(max_length=8,unique=True)
class Meta:
ordering = ['suraya']
但是,结果顺序有不希望的结果。
17-81-15
17-82-15
17-85-15
2-186-2
2-256-3
所需的顺序是破折号前的数字顺序。 因此,无论什么东西2都应该排在17之前。
可能有一种简单的方法可以通过正则表达式来完成此操作。
解决方法
根据您拥有的数据量,最简单的解决方案是添加仅将前导数字作为IntegerField()
的另一列,然后将其用于排序。
class Ayah(models.Model):
suraya = models.SlugField(max_length=8,unique=True)
suraya_sort = models.IntegerField()
class Meta:
ordering = ['suraya_sort']
然后覆盖save()
方法,以始终将第一个数字自动存储到排序列中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。