セキレイ:スニペットの注文方法

Aug 19 2020

国や州などのセキレイスニペットだけでなく、交通機関のオプションなどの他の機能も作成しています。「ピッカー」パネルにスニペット表示を注文する機能がないことに驚いています。

「スニペットには、Wagtail管理者で注文できるなど、ページの機能の多くが欠けています」 https://docs.wagtail.io/en/stable/topics/snippets.html?highlight=order

つまり、(たとえば)新しい国を挿入すると、その国をアルファベットのリストに表示することができず、ユーザーがパネルで見つけるのが非常に困難になります。

少なくとも、パネルでスニペットアイテムをアルファソートしてレンダリングする方法はありますか?

管理UIで注文できるようにしたいので、「地下鉄で」、「地下鉄への短い散歩」、「地下鉄への長いドライブ」などのオプションを、アルファソートではなくグループ化することができました。スニペットでこれを行うことができない場合、Orderableで同様のことを行い、スニペットのように管理UIで維持できるようにする方法はありますか?

ありがとう。

回答

1 gasman Aug 18 2020 at 23:06

Djangoを使用するとordering、モデルのMetaクラスにプロパティを設定して、そのモデルのクエリで使用されるデフォルトの順序を定義できます。Wagtail管理者内のリストではこれが使用されます。

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

    class Meta:
        ordering = ['name']

ユーザー定義の順序付けの場合、数値フィールド(positionたとえば、名前付き)を定義し、orderingプロパティをそのフィールドに設定できます。