如果我们看到Django的文档,就会看到它;
SlugField class SlugField(max_length=50, **options)
**options
:是个怪胎,但是Django没有向我展示我可以使用它的其他参数的任何信息。
我很感谢有人帮助我。
https://docs.djangoproject.com/en/2.1/ref/models/fields/#slugfield
答案 0 :(得分:1)
简而言之:您可以将这些选项传递给CharField
[Django-doc],也可以传递给Field
[Django-doc]。
SlugField
是扩展CharField
类的类,我们可以在source code [GitHub]中看到它:
class SlugField(CharField): default_validators = [validators.validate_slug] description = _("Slug (up to %(max_length)s)") def __init__(self, *args, max_length=50, db_index=True, allow_unicode=False, **kwargs): self.allow_unicode = allow_unicode if self.allow_unicode: self.default_validators = [validators.validate_unicode_slug] super().__init__(*args, max_length=max_length, db_index=db_index, **kwargs) #...
因此,它默认将max_length
设置为50
,将db_index
设置为True
,将allow_unicode
设置为False
,并将所有位置和超级构造函数(CharField
之一的命名实参。
根据source code [GitHub],CharField
类也将参数传递给其超级构造函数:
class CharField(Field): description = _("String (up to %(max_length)s)") def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.validators.append(validators.MaxLengthValidator(self.max_length))
所以这意味着它可以归结为options one can pass to any Field
[Django-doc]。例如:db_column
,default
,editable
,help_text
等。