簡體   English   中英

Django Slugfield 刪除文章('the'、'a'、'an'、'that')

[英]Django Slugfield removing articles ('the', 'a', 'an', 'that')

我正在使用 django 1.10,我有這個設置:

class Chapter(models.Model):
    title = models.CharField(max_length=200, unique=True)
    slug = models.SlugField(unique=True)
    date_completed = models.DateTimeField(blank=True, null=True)

    completed = models.BooleanField(default=False)

    def __str__(self):
        return self.title

在管理員中,我有:

class ChapterAdmin (admin.ModelAdmin):

    list_display = ('title','slug', 'date_completed',)
    list_filter = ['title', 'date_completed']
    prepopulated_fields = {"slug": ("title",)}

我注意到當我創建一個標題為“A boy and the pig”的章節時,我得到了“boy-and-pig”作為slug。 Django 正在從我的 slug 中剝離文章。 為什么會這樣?解決方法是什么?

為什么會這樣?

嗯,這是 Django 中Slugfield的默認行為。 為什么會這樣? 因為一般來說, 它被認為對 SEO 更好

(我說考慮過,因為鏈接的文章提到這可能是過時的想法。前提是文章等通常被認為是停止詞,語言中最常見的詞;它們太常見了,對搜索沒有幫助引擎索引,因為它們在大多數(如果不是所有)標題中都有。)

解決方法是什么?

首先 - 你為什么繞過它? 用例是什么?

但如果你滿意你真的想這樣做,那么這很簡單:

from django.template.defaultfilters import slugify
would_be_slug = 'This is one of those rarest of things: A blog that uses article.'
slugify(would_be_slug)
>>>u'this-is-one-of-those-rarest-of-things-a-blog-that-uses-article'

這個答案對覆蓋標准字段和 slugfields 有一些很好的建議

如果您不想自己動手,還有一個不錯的軟件包可以為您執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM