HTML表单验证和呈现
HTML表单验证和呈现
因为您希望简洁地表达简单的表单:
from morf import HTMLForm, fields, validators class ContactForm(HTMLForm): name = fields.Str(message='Please fill in your name') email = fields.Str(validators=[validators.is_email]) message = fields.Str(validators=[validators.minwords(10)])
因为您希望能够表示自定义验证逻辑:
class BookingForm(HTMLForm): name = fields.Str(message='Please fill in your name') arrival_date = fields.Date() leaving_date = fields.Date() @validates(arrival_date, leaving_date) def check_name(self, arrival_date, leaving_date): # No minimum booking duration at weekends if arrival_date.weekday() in (SAT, SUN): return if (leaving_date - arrival_date).days < 3: self.fail('Sorry, the minimum booking is for 3 days')
因为您希望使用一个简单的api:
def my_view(request): form = BookingForm(request.POST) if form.isvalid: make_booking(form.data) ... else: show_error_page(errors=form.errors)
有关MORF的文档,请访问https://ollycope.com/software/morf/" rel="nofollow">https://ollycope.com/software/morf/
morf的源代码可以在https://bitbucket.org/ollyc/morf/" rel="nofollow">https://bitbucket.org/ollyc/morf/