Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
斯拉格菲尔德在django有什么用? 注:请不要认为这是一个重复的帖子,所有现有的帖子都没有对SLUGFIELD给出清晰的理解。_Django_Django Models - Fatal编程技术网

斯拉格菲尔德在django有什么用? 注:请不要认为这是一个重复的帖子,所有现有的帖子都没有对SLUGFIELD给出清晰的理解。

斯拉格菲尔德在django有什么用? 注:请不要认为这是一个重复的帖子,所有现有的帖子都没有对SLUGFIELD给出清晰的理解。,django,django-models,Django,Django Models,我的问题是“我们可以使用sluggify并将值存储在CharField中,对吗?那么为什么我们需要SlugField来实现一些可以使用CharField轻松完成的事情?” 例如,在我的模型中,我有一个名为 url = models.CharField(max_length=30) def save(self, ...): self.url = slugify(self.url) ....... url不会以段塞格式保存在数据库中吗?我可以在浏览器中使用这个slugified值,

我的问题是“我们可以使用sluggify并将值存储在CharField中,对吗?那么为什么我们需要SlugField来实现一些可以使用CharField轻松完成的事情?”

例如,在我的模型中,我有一个名为

url = models.CharField(max_length=30)
def save(self, ...):
    self.url = slugify(self.url)
    .......
url不会以段塞格式保存在数据库中吗?我可以在浏览器中使用这个slugified值,那么创建models.SlugFIeld(max_length=30)有什么用呢?SlugField比slugified CharField有什么优势

在上面的代码中,如何将“CharField”替换为“SlugField”是有利的

我们可以
slagify
并将值存储在CharField中,对吗?那么,为什么我们需要SlugField来完成一些可以使用
CharField
轻松完成的事情呢

SlugField
是一个
CharField
,但是是一个特殊的
CharField
。它是一个包含验证器的字段,例如,如果您通过表单输入数据,它将验证输入的字符串是否确实是slug。例如,slug不包含空格,因此,如果您在表单中使用
SlugField
,以便作者可以自己指定slug,那么它将拒绝此类slug

默认情况下,它使用。
SlugField
有一个额外的参数
allow\u unicode
。如果设置为
True
,则将使用

因此,本质上它确实是一个
CharField
,但是有一个由。这样就更方便了

通常,您不希望对slug字段本身的内容进行slug化,而是从另一个字段(例如博客文章的标题)进行slug化。因此,您仍然希望保留标题,但制作了一个slugized变体

提供了更方便的,因为您可以定义如何填充字段,因此它将自动slugify:

from autoslug import AutoSlugField

class MyModel(models.Model):
    title = models.CharField(max_length=128)
    slug = AutoSlugField(populate_from='title')
从autoslug导入AutoSlugField
类MyModel(models.Model):
title=models.CharField(最大长度=128)
slug=AutoSlugField(从class='title'填充)
我们可以
slagify
并将值存储在CharField中,对吗?那么,为什么我们需要SlugField来完成一些可以使用
CharField
轻松完成的事情呢

SlugField
是一个
CharField
,但是是一个特殊的
CharField
。它是一个包含验证器的字段,例如,如果您通过表单输入数据,它将验证输入的字符串是否确实是slug。例如,slug不包含空格,因此,如果您在表单中使用
SlugField
,以便作者可以自己指定slug,那么它将拒绝此类slug

默认情况下,它使用。
SlugField
有一个额外的参数
allow\u unicode
。如果设置为
True
,则将使用

因此,本质上它确实是一个
CharField
,但是有一个由。这样就更方便了

通常,您不希望对slug字段本身的内容进行slug化,而是从另一个字段(例如博客文章的标题)进行slug化。因此,您仍然希望保留标题,但制作了一个slugized变体

提供了更方便的,因为您可以定义如何填充字段,因此它将自动slugify:

from autoslug import AutoSlugField

class MyModel(models.Model):
    title = models.CharField(max_length=128)
    slug = AutoSlugField(populate_from='title')
从autoslug导入AutoSlugField
类MyModel(models.Model):
title=models.CharField(最大长度=128)
slug=AutoSlugField(从class='title'填充)