Django:如何在管理员中显示文本字段之前修改它

时间:2009-10-04 22:56:21

标签: python django django-models django-signals

我有一个带文本字段的Django模型。我希望在将文本字段呈现给Django Admin中的用户之前修改它的内容。

我希望看到相当于 post_load 的信号,但它似乎不存在。

更具体一点:

我有一个文本字段,用于输入用户。在此文本字段中有一个读取更多分隔符。分隔符前的文本将进入introtext字段,进入全文字段后的所有内容。

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

我的计划是on_load从introtext和fulltext字段读取数据并将它们组合成全文textarea。在pre_save上,我会使用read more separator拆分文本,并在introtext中存储intro,在fulltext中存储余数。

因此,在显示表单之前,我需要使用

填充全文字段
introtext + '<!--readmore-->' + fulltext

我需要能够为现有项目执行此操作。

2 个答案:

答案 0 :(得分:2)

查看管理页面的Providing your own form

拥有自己的表单后,可以使用表单中的默认参数来提供所需的初始值。有关表单字段,请参阅Initial param上的文档。正如此链接将向您显示的那样,可以使用callable或constant作为初始值。

答案 1 :(得分:1)

没有post_load,因为没有加载功能。

实例的加载是在 init 函数中完成的,因此正确的答案是使用post_init信号。