Ballerina: come ordinare gli snippet

Aug 19 2020

Sto creando frammenti di ballerina per cose come Paese e Stato, ma anche per altre funzionalità come Opzioni di trasporto. Sono sorpreso che non sia possibile ordinare la visualizzazione dello snippet nei pannelli "selettore".

"Gli snippet mancano di molte delle funzionalità delle pagine, come essere ordinabili nell'amministratore di Wagtail"https://docs.wagtail.io/en/stable/topics/snippets.html?highlight=order

Ciò significa che se inserisco (diciamo) un nuovo Paese, è impossibile farlo apparire in un elenco alfabetico, rendendo molto difficile per gli utenti trovarlo in un pannello.

C'è un modo, almeno, per rendere gli elementi snippet ordinati alfa nel pannello?

Preferirei davvero essere in grado di ordinare nell'interfaccia utente dell'amministratore, quindi potrei avere opzioni come "Sulla metropolitana", "Breve passeggiata per la metropolitana", "Long Drive to Subway" raggruppate insieme, piuttosto che ordinate alfa. Se non riesco a farlo con gli snippet, c'è un modo per fare qualcosa di simile con un ordinabile e consentire che venga mantenuto nell'interfaccia utente di amministrazione come lo sono gli snippet?

Grazie.

Risposte

1 gasman Aug 18 2020 at 23:06

Django ti consente di impostare una orderingproprietà sulla Metaclasse del modello per definire l'ordinamento predefinito utilizzato dalle query su quel modello: gli elenchi all'interno dell'amministratore di Wagtail lo utilizzeranno.

@register_snippet
class Country(models.Model):
    name = models.CharField(max_length=255)

    class Meta:
        ordering = ['name']

Per gli ordinamenti definiti dall'utente, è possibile definire un campo numerico (denominato position, ad esempio) e impostare la orderingproprietà su tale campo.