Django 模型选项保存

Django Models Option Save

我只想问一下,在这个模型中,这个方法 "save" 是如何工作的? 我只是想将它添加到我的代码中,但我真的不知道它是如何工作的。 如果模型中没有 id,这些行可以帮助我保存 slugify 吗? 非常感谢。

class Category(models.Model):

    name = models.CharField(max_length=50)
    slug = models.SlugField(editable=False)

    def save(self, *args, **kwargs):
        if not self.id:
            self.slug = slugify(self.name)
        super(Category, self).save(*args, **kwargs)

    def __unicode__(self):
        return self.name

简答:这可以帮助您将 slug 添加到新对象中。

要检查对象是否是新对象,请执行此验证:

if not self.id:

this return 仅当 self.id 为空时为真。考虑到 id 是主键,它只能用于新对象。

self.slug = slugify(self.name)

现在使用 slugify util:

name 字段转换为 slug

Converts to ASCII if allow_unicode is False (default). Converts spaces to hyphens. Removes characters that aren’t alphanumerics, underscores, or hyphens. Converts to lowercase. Also strips leading and trailing whitespace.

For example:

slugify(value)

If value is "Joel is a slug", the output will be "joel-is-a-slug".

最后你打电话给

super(Category, self).save(*args, **kwargs)

保存对象。