Je suis nouveau à la fois django et python mais je commence à avoir une idée des choses. Je pense.Django QuerySet order
J'ai ce problème et je n'arrive pas à trouver une réponse. (Bien que je suppose qu'il est vraiment simple et les facteurs limitants sont mes compétences en Google et le manque de connaissances python/django)
Le scénario:
un utilisateur peut opter pour recevoir les offres d'emploi temporaire à un certain nombre de magasins il ou elle choisit.
Je voudrais présenter une liste des offres d'emploi à venir (StoreEvents) triées par DateField seulement.
Example:
Store A - 2009-04-20
Store B - 2009-04-22
Store A - 2009-04-23
Atm Je suis coincé avec la présentation des données d'abord triés en magasin puis par date depuis que je suis évidemment le StoreEvents accède à travers le modèle de magasin.
Example:
Store A - 2009-04-20
Store A - 2009-04-23
Store B - 2009-04-22
Donc, ma question est la suivante: Est-il possible de créer un QuerySet qui ressemble le premier exemple et comment puis-je le faire?
Exemples de modèles connexes inclus:
class Store(models.Model):
class StoreEvent(models.Model):
info = models.TextField()
date = models.DateField()
store = models.ForeignKey(Store, related_name='events')
class UserStore(models.Model):
user = models.ForeignKey(User, related_name='stores')
store = models.ForeignKey(Store, related_name='available_staff')
Edit:
Le SQL suivant fait le tour, mais je ne peux toujours pas comprendre comment le faire dans django:
SELECT *
FROM store_storeevent
WHERE store_id
IN (
SELECT store_id
FROM profile_userstore
WHERE user_id =1
)
ORDER BY date
Vous devriez pouvoir le faire plus simplement: 'qs = StoreEvent.objects.filter (store__available_staff__user = user) .order_by ('date') ' – Anentropic