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)
保存对象。
我只想问一下,在这个模型中,这个方法 "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)
保存对象。