1

これをできるだけシンプルに保つようにします。カスタムフィールドがあります:

class CharExactLengthField(CharField):
    """ FormField to represent a CharField with an exact Length
    """
    def __init__(self, length=None, required=True, widget=None, label=None,
                 initial=None):
        self.length = length
        CharField.__init__(self, max_length=length, required=required,
                                 widget=widget, label=label, initial=initial)
    def clean(self, value):
        """ Clean for CharExactLengthField
        """
        super(CharExactLengthField, self).clean(value)
        if not self.required and value in EMPTY_VALUES:
            return None
        if self.length != len(value):
            raise ValidationError(
                'Require exactly %i characters' % self.length)
        return value

このフィールドはいくつかのフォームで使用されていますが、この特定のフォームでは、このフィールドが空かどうかをテストしているだけなので、 にフォールバックしsuper(CharExactLengthField, self).clean(value)ます。開発中にこれをテストしている間、私は正常に取得しますThis field is required:

ここに画像の説明を入力

本番環境で同じことをテストすると、次の結果が得られますInternal Server Error

ValidationError at /test/test/1/
[u'This field is required.']

Request Method: POST
Request URL:    http://smo/test/test/1/
Exception Type: ValidationError
Exception Value:    [u'This field is required.']
Exception Location: /usr/local/lib/python2.5/site-packages/django/newforms/fields.py in clean, line 78

これが起こる理由はありますか?ValidationError本番環境でのみ内部サーバー エラーがスローされるのはなぜですか?

ノート:

まだ気付いていない場合、これは Django 0.96.5 です

4

0 に答える 0