2010-10-30 15 views
5

Merhaba ben aşağıda benzeyen bir biçim sınıf var "alanı mevcut değil": -: AncakWTforms: Hata

def checkfile(form,field): 
    if field.data: 
     filename=field.data.lower() 
     ALLOWED_EXTENSIONS = set(['png', 'jpg', 'jpeg', 'gif']) 
     if not ('.' in filename and filename.rsplit('.',1)[1] in ALLOWED_EXTENSIONS): 
      raise ValidationError('Wrong Filetype, you can upload only png,jpg,jpeg,gif files') 
    else: 
     raise ValidationError('field not Present') # I added this justfor some debugging. 

-

class UserCreateForm(wtf.Form): 
    name=wtf.TextField('Name',validators=[validators.Required(),username_check]) 
    email=wtf.TextField('Email') 
    userimage=wtf.FileField(u'Upload Image',validators=[checkfile]) 

özel doğrulama işlevi "checkfile" şuna benzer Şablonda bir dosyaya göz attığımda ve gönder seçeneğini tıklattığımda, her zaman "alanın mevcut değil" hatasını artırdığını görüyorum. Burada biraz kafa karışıklığı olan bir . field.data için nihayet bu çözüldü dosya adları

cevap

7

varlığını kontrol etmek uygun bir yöntem değil, field.file ile doğrulayıcıda field.data yerine zorunda kaldı ve daha sonra onun nitelikleri field.file.filename kullanarak erişebileceğiniz.

+0

Bunu kabul edilen yanıt olarak işaretlemelisiniz. –