1

テキストフィールドのあるDjangoモデルがあります。Django Adminでユーザーに表示される前に、テキストフィールドの内容を変更したいと思います。

post_loadと同等の信号が表示されることを期待していましたが、存在しないようです。

具体的には:

ユーザー入力を受け取るテキストフィールドがあります。このテキストフィールドには、続きを読むセパレータがあります。区切り文字の前のテキストはイントロテキストフィールドに入り、後のテキストはすべてフルテキストフィールドに入ります。

同時に、ユーザーが記事を編集しているときに、ユーザー1のテキストフィールドのみを表示したいと思います。

私の計画は、on_loadでイントロテキストとフルテキストフィールドからデータを読み取り、それらをフルテキストテキストエリアに結合することでした。pre_saveで、read moreセパレーターを使用してテキストを分割し、イントロをイントロテキストに、残りをフルテキストに格納します。

したがって、フォームが表示される前に、全文フィールドに次のように入力する必要があります

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

そして、私は既存のアイテムに対してこれを行うことができる必要があります。

4

2 に答える 2

2

管理ページに独自のフォームを提供するをご覧ください。

独自のフォームを作成したら、フォームでデフォルト パラメータを使用して、必要な初期値を指定できます。フォーム フィールドのInitial パラメータのドキュメントを参照してください。このリンクが示すように、呼び出し可能オブジェクトまたは定数を初期値として使用できます。

于 2009-10-04T23:26:04.367 に答える
1

load 関数がないため、post_load はありません。

インスタンスのロードはinit関数で行われるため、正しい答えは post_init シグナルを使用することです。

于 2009-10-05T04:43:52.093 に答える