【发布时间】:2010-11-26 04:22:55
【问题描述】:
有没有办法在标准模型表单中使用 django 管理站点中的预填充字段来获得相同的结果
【问题讨论】:
标签: django slug django-forms
有没有办法在标准模型表单中使用 django 管理站点中的预填充字段来获得相同的结果
【问题讨论】:
标签: django slug django-forms
嗯,django 是开源的,所以如果你想复制某些行为,你可以read the code 并选择你喜欢的东西。例如,您可以看到 contrib.admin 使用名为 urlify.js 的脚本来执行动态 slugging,用法如下:
<script type="text/javascript" src="/admin-media/js/urlify.js"></script>
<script type="text/javascript">
document.getElementById("id_title").onkeyup = function() {
var e = document.getElementById("id_slug");
if (!e._changed) { e.value = URLify(document.getElementById("id_title").value, 50); }
}
</script>
...当然取决于您的管理媒体的来源(我的来自“/admin-media/”)
或者,如果您愿意在视图中进行 slugifying,您可以使用 django.template 中使用的函数作为 slugify 过滤器:django.template.defaultfilters.slugify。
【讨论】:
/static/admin/js/urlify.js 或在带有静态模板标签 {% static 'admin/js/urlify.js' %} 的模板中 * URLify(s, num_chars, allowUnicode) 现在允许使用 Unicode,所以你需要将true/false 添加到 URLify 函数调用中。
/static/admin/js/vendor/xregexp/xregexp.min.js
<script type="text/javascript" src="/media/js/urlify.js"></script>
var slug = document.getElementById("id_slug").value;
document.getElementById("id_name").onkeyup = function() {
if (slug == '') {
document.getElementById("id_slug").value = URLify(document.getElementById("id_name").value, 50);
}
}
【讨论】: