2009-05-13 27 views
18

と自動投入CREATED_BYフィールドは、私は非常に単純なWebアプリケーションのためのDjangoのadminインタフェースを使用したいが、私はハード解決することをすべきではない問題を回避することはできません。..Djangoのadminサイト

を考えてみましょう

created_byフィールドを自動入力してDjango管理者に認識させる方法が見つかりません。私が見てきたメソッドのほとんどは、オブジェクトのsaveメソッドをオーバーロードしてリクエストユーザに渡すことを意味します。彼らはすべてカスタムビューやフォームを作成する必要があります。

最適adminサイトで新しい連絡先を作成するためのフォームは、(非常に簡単である)CREATED_BYフィールドを示し、(それが必要以上に難しいと思われる)現在のユーザーとそれを自動的に取り込むべきではありません。

答えて

23

http://code.djangoproject.com/wiki/CookBookNewformsAdminAndUser

あなたModelAdminのオブジェクトのメソッド保存の実装が含まれます。

+0

これはまさに私が探していたものです。ありがとう! –

+1

これは非常に役に立ち、docsページに導かれました。このページはあなたのバージョンのDjangoを選択できるのでさらに優れています!たとえば、バージョン1.6:https://docs.djangoproject.com/en/1.6/ref/contrib/admin/ – sage

4

フィールドにはdefaultを指定する必要があります。この場合は、現在のユーザーを取得するメソッド呼び出しです(現在のユーザーを取得するには、authのマニュアルを参照してください)。

1

他の場所にあるものよりも優れたソリューションが本当に必要だったので、私はPopulate user Id questionにミドルウェアを実装しました。私のソリューションでは、フォームやビューを変更する必要はありません。