は、私はモデルの名前として3つの数字のベクトルを持っています。 つまり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」を使用してみましたまだそれは全く役に立たないですし、今でも同じように動作します。
技術的に働くだろう私の知っている唯一の方法は、3つの別々の「IntegerFieldと」sのと私はあまりにも非現実的だと思う組み合わせ、でそれを注文することです。
任意のポインタ、または私はこの非現実的な方法で立ち往生していますか?
私は時には文字列を使ってこのオブジェクトを呼び出す必要があることを忘れていました。文字列をintに絶えず変換したくないので、他の方法で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"]
なぜ3つの整数フィールドを持つのは実際的ではありませんか? –
私はちょうどそれが単一のフィールドにそれを格納するために多くのneaterだろうと思った。私は後の文字列を与えられたこの事をget_or_createしたい場合 –