Ho due modelli (Event e UserProfile) in una relazione ManyToMany. Voglio selezionare solo quegli eventi che hanno meno di un certo numero di utenti ad essi associati. Quindi gli eventi in cui meno di 4 persone hanno finora firmato dovrebbero essere selezionati.Filtro query Django per numero di oggetti ManyToMany
In views.py Ho qualcosa di simile, ma non funziona:
proposed_event_list = Event.objects.all().filter(userprofile__lt=4)
Le parti pertinenti aspetto models.py come:
class Event(models.Model):
name = models.CharField(max_length=100)
date = models.DateTimeField('Event date')
class UserProfile(models.Model):
user = models.OneToOneField(User)
event_commitments = models.ManyToManyField(Event, null=True, blank=True)
Credo Io non sono correttamente filtraggio con tutti i profili utente su ciascun evento, ma non so come farlo.
Potete essere d'aiuto?
Si prega di dare un'occhiata al documento o google per annunamenti e aggregazioni con l'ORM, dovrebbe iniziare. – Jingo
Ho fatto. Sto cercando consigli più specifici. I filtri standard forniti sembrano filtrare in base agli attributi specifici di un singolo oggetto modello correlato anziché a un insieme di essi. Suppongo di cercare informazioni che sembrino un po 'più esoteriche. – KindOfGuy
Uha, guardando il consiglio di Yuji in basso, ho capito che non avevo esaminato quello che hai detto. Grazie per il consiglio! – KindOfGuy