2

器用さのタイプがあり、画像フィールドの定義は次のようになります。

image = NamedBlobImage(
    title=_(u'Lead Image'),
    description=_(u"Upload a Image of Size 230x230."),
    required=True,
)

アップロードされた画像ファイルをチェックするバリデーターを追加するにはどうすればよいですか? たとえば、画像の幅が 500 ピクセルを超える場合は、別のファイルをアップロードするようにユーザーに警告します。ヒントやサンプルコードは大歓迎です。

4

1 に答える 1

4

制約関数を設定したい:

from zope.interface import Invalid
from foo.bar import MessageFactory as _


def imageSizeConstraint(value):
    # value implements the plone.namedfile.interfaces.INamedBlobImageField interface
    width, height = value.getImageSize()
    if width > 500 or height > 500:
        raise Invalid(_(u"Your image is too large"))

次に、その関数をフィールドの として設定しconstraintます。NamedBlobImage

image = NamedBlobImage(
    title=_(u'Lead Image'),
    description=_(u"Upload a Image of Size 230x230."),
    constraint=imageSizeConstraint,
    required=True,
)

詳細については、バリデーションに関するDexterity マニュアルとplone.namedfileインターフェース定義を参照してください。

于 2013-02-28T17:20:21.987 に答える