Django - 生成默认的slug [英] Django - Generate default slug

查看:215
本文介绍了Django - 生成默认的slug的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想为我的模型生成一个随机的插件,但是没有设置blank = True(因为我以后要通过验证来执行它)。



我想知道是否可以这样做:

  slug = models.SlugField(unique = True,default = some_method() verbose_name ='URL Slug')

其中some_method是一种生成随机块的方法?我试过上面的代码,它不起作用:(



我想做的是生成一个独特的插件(unique_slugify?)

解决方案

您可以覆盖模型save-method,以便在创建新实体时,即时生成lug。。 / p>

  if not self.pk:
self.slug =''.join(random.sample(string.ascii_lowercase, 10))

你可以这样做,但不是很好的和更好的是让屁股成为一个确定性的被压缩版本的对象名称。


I want to generate a random slug for my model, but without setting "blank=True" (as I want to enforce it later with validation.)

I was wondering if I could do something like this:

slug = models.SlugField(unique=True, default=some_method(), verbose_name='URL Slug')

Where some_method is a method which generates a random slug? I've tried the above code and it doesn't work :(

What I'd like to do is generate a unique slug (unique_slugify?)

解决方案

You could override the models save-method so that when a new entity is created, you generate the slug on the fly. Something like:

if not self.pk:
    self.slug = ''.join(random.sample(string.ascii_lowercase, 10))

You could do that, but it isn't very good and better would be to let the slug be a deterministic slugified version of the objects name.

这篇关于Django - 生成默认的slug的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆