Django:如何在管理界面显示前修改文本字段

1 投票
2 回答
1685 浏览
提问于 2025-04-15 14:48

我有一个Django模型,里面有一个文本字段。我想在这个文本字段展示给用户之前,先修改一下内容。

我原本以为会有类似post_load的信号,但似乎并没有。

更具体来说:

我有一个文本字段用来接收用户输入。在这个文本字段里,有一个“阅读更多”的分隔符。分隔符前面的内容会放到introtext字段里,分隔符后面的内容则放到fulltext字段里。

同时,我只想在用户编辑文章时显示一个文本字段。

我的计划是,在加载时读取introtext和fulltext字段的数据,然后把它们合并到fulltext的文本框里。在保存之前,我会根据“阅读更多”的分隔符来拆分文本,把前面的内容存到introtext里,后面的内容存到fulltext里。

所以,在表单显示之前,我需要把fulltext字段填充为

introtext + '<!--readmore-->' + fulltext

而且我还需要对已有的项目进行这样的操作。

2 个回答

2

可以看看这个链接,了解如何为管理页面提供你自己的表单:提供你自己的表单

一旦你有了自己的表单,就可以在表单中使用默认参数来设置你想要的初始值。关于表单字段的初始参数,可以参考这个文档:初始参数。这个链接会告诉你,初始值可以是一个可调用的函数或者一个常量。

1

这里没有 post_load,因为没有加载的函数。

实例的加载是在 init 函数中完成的,所以正确的做法是使用 post_init 信号。

撰写回答