Ho un set di query che è ragionevolmente complicato, che attualmente utilizzo in un'unica vista per ottenere un elenco di oggetti.Dove mettere domande comuni su Django?
Desidero utilizzare lo stesso queryset in un paio di altre visualizzazioni ma preferirei non copiare semplicemente il codice più volte. Potrei usare un Manager, per mantenere il queryset in un posto, e usarlo in ogni vista eccetto la query si basa su una data diversa per ogni pagina.
A quanto ho capito, i gestori non ti permettono di passare in variabili ... quindi mi chiedo dove dovrei mettere questa query in modo da non continuare a ripeterla in più viste. qualche idea?
FWIW, questo è il mio set di query, e published_date è la variabile che cambia in ogni pagina:
day_publications = Publication.objects.filter(
Q(reading__end_date__gte=published_date) | Q(reading__end_date__isnull=True),
reading__start_date__lte=published_date,
).select_related('series',)
Doh, naturalmente, grazie. Sono stato espulso dalla documentazione che non suggeriva di poter passare valori alle funzioni di Manager. Avrei dovuto provarlo! –
Doveva usare 'get_queryset' invece di' get_query_set'. – jozxyqk