我已经构建了一个表单,它使用短js代码自动生成slug字段。 我想向用户隐藏slug字段,以防止它们被编辑
//slugify.js
const titleInput = document.querySelector('input[name=title');
const slugInput = document.querySelector('input[name=slug]');
const slugify = (val) => {
return val.toString().toLowerCase().trim()
.replace(/&/g, '-and-') // replacing & with '-and-'
.replace(/[\s\W-]+/g, '-') //replcaing spaces, non-word chars and dashes with a single '-'
};
titleInput.addEventListener('keyup', (e) => {
slugInput.setAttribute('value', slugify(titleInput.value));
});
//models.py
slug = models.SlugField(max_length=100, unique = True)
当我从forms.py
中删除它时,slugfield变为空白。我知道问题是什么,但我不知道该怎么解决。
我尝试从forms.py
中删除slugfield,但它不会添加slug,因为我使用slugify.js
中的输入来定位slug
我在slugField上尝试了editable = False
,但它会给我一个错误
django.core.exceptions.FieldError: 'slug' cannot be specified for VideoPost model form as it is a non-editable field
有没有其他方法可以让我从表单中隐藏slugfield并正确保存slug
在后端执行slug生成!前端代码可以在浏览器中编辑,任何人都可以修改slug名称
将slug字段设置为空=True,Null=True,并在保存时填充它
相关问题 更多 >
编程相关推荐