【问题标题】:Django: How to modify a text field before showing it in adminDjango:如何在管理员中显示之前修改文本字段
【发布时间】:2010-12-03 19:25:00
【问题描述】:

我有一个带有文本字段的 Django 模型。我想在将文本字段的内容呈现给 Django Admin 中的用户之前对其进行修改。

我希望看到与 post_load 等效的信号,但它似乎不存在。

更具体地说:

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

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

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

所以,在显示表单之前,我需要用

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

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

【问题讨论】:

  • 嘿,你解决了吗?你有一些代码吗? :)

标签: python django django-models django-signals


【解决方案1】:

查看管理页面的Providing your own form

一旦你有了自己的表单,你就可以使用表单中的默认参数来提供你想要的初始值。有关表单字段,请参阅 Initial param 上的文档。正如此链接将向您展示的那样,可以使用可调用对象或常量作为初始值。

【讨论】:

    【解决方案2】:

    没有post_load是因为没有load函数。

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

    【讨论】:

      猜你喜欢
      • 2015-01-23
      • 1970-01-01
      • 1970-01-01
      • 2019-08-12
      • 2016-06-20
      • 2021-03-01
      • 2014-12-01
      • 2017-05-08
      • 2011-05-19
      相关资源
      最近更新 更多