見出し画像

Poryのフィルタ機能とAirtableの関係を理解する

PoryでAirtableのデータベースを使ってWebページをノーコードで構築できます。データの数が多いときに便利なフィルタ機能について調べてみました。

大元のデータベースのFilterだけでは無効

今回はPoryのテンプレート「Pory Jobs」をもとに調査しています。

Poryで読み込んでいるメインのシート(site-content)にFilterという列があるので、最初はてっきりここに書き込めばフィルタに反映されると思っていました。

画像1

TokyoとOsakaを追加してみましたが、反応なし・・・

画像2

Filtersというシートが重要

あれこれ悩みましたが、Poryのヘルプに答えがありました。

Filtersというシートがフィルタの本体なので、ここにTokyoとOsakaを追加して、Field Nameにどのフィルタとして使うかを宣言します。

画像3

すると、このようにフィルタが表示されました! めでたく解決です。

画像4

Filtersとsite-contentの記述は一致していないとダメ

ついでなのでフィルタを日本語に変えてみます。

画像5

これだとPoryのページには反映されますが、フィルタとして正しく機能しません

画像6

原因はメインのシート(site-content)の記述とFiltersの記述が一致していないことにあります。site-contentのFilter1列は複数選択モードで選択肢が用意されているのですが、この選択肢がFiltersシートとリンクしていないのです。

画像7

Airtableのリンクはうまく動かない?

そこで、Filtersシートとリンクするように変更します。[Multiple select]を[Link to another record]に変更します。

画像8

リンクしたデータを追加したら元のデータを削除して置き換えていきます。

画像9

置き換えた後でPoryを見ると、このようにフィルタが正しく機能するようになりました! が、なんか表記がおかしい。

画像12

どうやらPoryではAirtableの表記された内容ではなく、リンク情報(?)を出しているようです。
→開発元に問い合わせたところ、Airtableがrecord idを返す仕様になっているのが原因とのことでした。

というわけで、リンクさせた後で面倒ですが再びタイプを[Multiple Select]に戻します。後でまたリンク情報を使いたいときは、列を複製しておくといいと思います。

画像11

これで無事表記もなおりました。

画像12

まだまだわからないところが多いですが、調査を進めていきます。

この記事が気に入ったらサポートをしてみませんか?