簡體   English   中英

Django order_by()未正確排序

[英]Django order_by() not doing proper ordering

我在2個地方的Django上設置了以下查詢,唯一的限制就是它給了我不同的結果

這是以下QuerySet的第一個結果

list_empleados = empleado.objects.filter(
    empresa=session_empresa
).order_by('-puntos')[:3]

在此處輸入圖片說明

正確的結果應該是:

19,13,9而不是9,19,13明白我的意思嗎?

這是第二個QuerySet

list_empleados = empleado.objects.filter(
    empresa=session_empresa
).order_by('puntos')

這是結果

在此處輸入圖片說明

正確的結果應該是:

用19,13,9,1代替1,13,19,9明白我的意思嗎?

models.py

class empleado(models.Model):


    empresa = models.ForeignKey(empresa)
    nombre = models.CharField(max_length=50)

    fecha_nacimiento = models.DateField(auto_now_add=False)

    GENDER_CHOICES = (

        ('M', 'Masculino'),
        ('F', 'Femenino'),
    )

    sexo = models.CharField(max_length=1, choices=GENDER_CHOICES)

    avatar = StdImageField(upload_to='avatar/%Y/%m/%d', variations={
        'large': (300, 300, True),
        'medium': (50, 50, True),
        'thumbnail': (98, 122, True)})

    correo = models.EmailField(max_length=100)

    departamento = models.ForeignKey(departamento)

    telefono = models.CharField(max_length=21)
    direccion = models.CharField(max_length=200)
    twitter = models.CharField(max_length=15)
    usuario = models.CharField(max_length=15)
    password = models.CharField(max_length=40)
    primer_lugar = models.CharField(max_length=20)
    segundo_lugar = models.CharField(max_length=20)
    tercer_lugar = models.CharField(max_length=20)
    goleador = models.CharField(max_length=20)
    puntos = models.CharField(max_length=2, default=0)
    partidos = models.CharField(max_length=4, default=0)

    def avatarEmpleado(self):
        return '<img src="/media/%s" height="90" width="90">' % (self.avatar.thumbnail)

    avatarEmpleado.allow_tags = True

    def __unicode__(self):
        return self.nombre

這是因為puntos是一個charfield,所以按字典順序排序,因此“ 9”>“ 19”。 如果要按數字順序訂購,則需要一個integerfield或floatfield。

我建議編輯模型,但是如果您無法查看此解決方案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM