2009-09-10 16 views
0

モデルに2つのImageFieldが必要です。ユーザが画像 Django ImageFieldファイルコリジョンコードをオーバーライド

  • は、我々はそのイメージのコピーを持っている一つであるが、同じファイルを使用してアップロード一つである

    注:2つのフィールドの理由を簡略化しています。

    新しいImageFieldフィールドタイプを作成する以外に、ImageFieldがプログラムで2番目のフィールドを割り当てるときに_をファイル名に追加するのを止める方法はありますか?

    よろしく

    マーク

  • 答えて

    0

    は、あなたが2番目のエントリのためにFileFieldにを使用していない正当な理由がありますか?その2番目の項目の画像フィールドの詳細を使用している(つまり、アップロード時に画像が管理されていることを管理者が確認している)ようには聞こえません。あなたのコードで何らかの理由でイメージフィールドにする必要がある場合は、それをキャストすることができます...

    私はあなたが管理インターフェイスで非表示に設定されていると思いますか?

    +0

    ありがとうポール、私は管理インターフェイスで2番目のフィールドを隠しています。私が知る限りFileFieldはまだファイル名の衝突を行います。私はそれらを同じにしておく必要がありますが、APIの第2フィールドを使用する外部チームのフィールドタイプです。 私は他のオプションを検討します。あなたのご意見をもう一度お聞かせください! –

    0

    は、私はあなたが「新しいImageFieldタイプの作成から離れて」と言うけど、私はこれを行うための最善の方法は、ちょうどそれをするだろうと想像すると、FileFieldoverride the get_filename methodImageField明らかにサブクラス)。

    とは別に、あなたがあなたのモードでImageFieldからstorage引数として渡す独自のStoragedjango.core.files.storage)サブクラスを作成することが可能です。そこにget_valid_name methodを上書きする必要があります。実際のアンダースコアはget_valid_filename method in django.utils.textから来ていることに注意してください。

    私は実際には、必要な機能を提供するのにImageFieldをサブクラス化するのが間違っていません。

    +0

    お返事ありがとうございます!基本的に私は、設定/パラメータの変更があったかどうかを調べていました –

    関連する問題