Django の「スラッグ」とは何ですか? 質問する

Django の「スラッグ」とは何ですか? 質問する

Django コードを読むと、モデルの中に「スラッグ」と呼ばれるものがよく出てきます。これが何なのかよくわかりませんが、URL と関係があることは知っています。このスラッグはいつ、どのように使用すればよいのでしょうか?

私はその定義を以下で読んだ。この用語集:

スラッグ
文字、数字、アンダースコア、ハイフンのみを含む、何かの短いラベル。通常は URL で使用されます。たとえば、典型的なブログ エントリの URL では次のようになります。

https://www.djangoproject.com/weblog/2008/apr/12/spring/最後の部分(春)はナメクジです。

ベストアンサー1

「スラッグ」とは、通常、すでに取得されているデータを使用して有効な URL を生成する方法です。たとえば、スラッグは記事のタイトルを使用して URL を生成します。手動で設定するのではなく、タイトル (または別のデータ) を指定して関数を使用してスラッグを生成することをお勧めします。

例:

<title> The 46 Year Old Virgin </title>
<content> A silly comedy movie </content>
<slug> the-46-year-old-virgin </slug>

ここで、次のような Django モデルがあるとします。

class Article(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField(max_length=1000)
    slug = models.SlugField(max_length=40)

このオブジェクトを URL と意味のある名前で参照するにはどうすればよいでしょうか。たとえば、Article.id を使用すると、URL は次のようになります。

www.example.com/article/23

または、次のようにタイトルを参照することもできます。

www.example.com/article/The 46 Year Old Virgin

URL ではスペースは無効であるため、 に置き換える必要があります%20。結果は次のようになります。

www.example.com/article/The%2046%20Year%20Old%20Virgin

どちらの試みも、あまり意味のある、読みやすい URL にはなりません。次の URL の方が良いでしょう。

www.example.com/article/the-46-year-old-virgin

この例では、the-46-year-old-virginはスラッグです。これは、タイトルのすべての文字を小文字にし、スペースをハイフンに置き換えることで作成されます-

別の例については、この Web ページの URL も参照してください。

おすすめ記事