Django 的 SlugField 中的周期
问题
- 为什么通过
initial_data.yaml
装置加载的数据可以用包含句点的 slug 填充 SlugField 并且不会生成错误?
代码
这是模型的摘录:
class Project(models.Model):
slug_code = models.SlugField(max_length=15)
这是适用的 initial_data.yaml
摘录:
- model: myapp.project
pk: 1
fields:
slug_code: TIDE.024
yaml 固定装置 initial_data.yaml
安装成功,没有任何错误。当我登录管理员并查看项目模型时,我可以看到 SlugField slug_code
包含 TIDE.024
,但是当我更改 slug_code
时code> 字段说 TIDE.025
管理员会生成以下错误:
Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.
Configuration
- Django v1.1.1
- PyYAML v3.09
Question
- Why can data loaded via the
initial_data.yaml
fixture populate a SlugField with a slug containing a period and not generate an error?
Code
Here's an excerpt of the model:
class Project(models.Model):
slug_code = models.SlugField(max_length=15)
Here's the applicable initial_data.yaml
excerpt:
- model: myapp.project
pk: 1
fields:
slug_code: TIDE.024
The yaml fixture initial_data.yaml
is installed without any errors. When I log into the Admin and look at the Project model, I can see that the SlugField slug_code
contains TIDE.024
, but when I change the slug_code
field to say TIDE.025
the Admin generates the following error:
Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.
Configuration
- Django v1.1.1
- PyYAML v3.09
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
SlugField
中的值仅在表单中检查,而不在数据库中检查。The value in the
SlugField
is only checked in forms, not in the database.如果您想禁止字段中的非法字符,您始终可以添加自定义函数。
像这样的东西:
You can always add a custom function if you want to forbid illegal characters from your field.
Something like: