У меня есть вектор из трех чисел в качестве имени для модели.
то есть 12-1-120 12-1-139 12-1-9 и т. д.
Я хотел отсортировать экземпляры модели в порядке убывания, используя Django для отображения 12-1-139, 12-1-120, 12-1-9.
За исключением того, что он всегда действует как строка, поэтому отображает 12-1-9, 12-1-139, 12-1-120.
Я пытался использовать CommaSeparatedIntegerField, но он абсолютно бесполезен и работает так же.
Единственный известный мне способ, который технически сработал бы, это иметь три отдельных "IntegerField" и упорядочивать их по комбинации, что я считаю слишком непрактичным.
Есть какие-нибудь указатели, или я застрял с этим непрактичным методом?
Я забыл упомянуть, что мне также иногда приходилось вызывать этот объект, используя строку, и я не хотел постоянно преобразовывать строку в int, поэтому я сделал это наоборот и сохранил кучу целых чисел в строку используя несколько вычисляемых полей.
Вот мой основной код:
class MyModelName(models.Model):
name = models.CharField(max_length=15)
x = models.IntegerField(max_length=200)
y = models.IntegerField(max_length=200)
z = models.IntegerField(max_length=200)
def save(self, *args, **kwargs):
self.name = '-'.join([str(self.x), str(self.y), str(self.z)])
super(MyModelName, self).save(*args, **kwargs)
class Meta:
ordering = ["-x","-y","-z"]