Come posso fare una order_by
come questo ....Django order_by() filtro con distinti()
p = Product.objects.filter(vendornumber='403516006')\
.order_by('-created').distinct('vendor__name')
Il problema è che non ho più fornitori con lo stesso nome, e voglio solo l'ultima prodotto dal fornitore ..
Spero che abbia senso?
ho ottenuto questo errore DB:
SELECT DISTINCT ON expressions must match initial ORDER BY expressions LINE 1: SELECT DISTINCT ON ("search_vendor"."name") "search_product"...
Ma con questo metodo ordinerà per prima cosa il nome del fornitore e utilizzerà solo "creato" come ordine secondario. Il che significa che l'ordine "creato" sarà errato. https://docs.djangoproject.com/en/1.10/ref/models/querysets/#order-by –
@Ness Quello che dici è vero. Ma non necessariamente rilevante. Sembra che l'OP non fosse interessato all'ordinamento di 'created'. Ha usato 'creato' non allo scopo di ordinare il risultato finale, ma per ottenere il record corretto per venditore. Sembra che l'ordine dei venditori non fosse importante nel caso d'uso dell'OP. In realtà non conosciamo il vero ordine previsto, è essenzialmente non specificato da OP. – janos
Grazie, non è una cosa ovvia. – abcdn