2010-09-20 8 views
0

J'ai besoin de commander_par une comparaison de champs de sorte que tous les champs correspondant à une certaine valeur soient affichés en haut.Classement Django par comparaison de champs

Le SQL pour ce faire est SELECT * FROM messages ORDER BY message='alsfkjsag' DESC

+1

Qu'avez-vous essayé? Quel est ton modèle? Qu'est-ce que les résultats de ce que vous avez essayé? Ce n'est pas "Write-my-code-for-me.com". –

+0

Ce n'est pas un SQL valide. –

Répondre

1

Il y a au moins deux façons de le faire:

  1. SQL personnalisé avec UNION:

    • moissonneuse-batteuse deux sélections
    • un qui contient toutes les lignes qui ont votre message désiré
    • le autre avec toutes les lignes qui ont un autre message
  2. Ajouter un champ dynmaic au QuerySet

    • extra (select = { "is_message": "message = 'alsfkjsag'"})
    • et puis order_by ('is_message')
    • ou en bref:

    Messages.objects.extra (select = { "is_message": "un message = 'Alsfkjsag' "}) .order_by ('is_message')

Questions connexes