# Path: djng/forms/fields.py
# class DefaultFieldMixin(object):
# class Field(DefaultFieldMixin, fields.Field):
# class CharField(DefaultFieldMixin, fields.CharField):
# class DecimalField(DefaultFieldMixin, fields.DecimalField):
# class EmailField(DefaultFieldMixin, fields.EmailField):
# class DateField(DefaultFieldMixin, fields.DateField):
# class DateTimeField(DefaultFieldMixin, fields.DateTimeField):
# class TimeField(DefaultFieldMixin, fields.TimeField):
# class DurationField(DefaultFieldMixin, fields.DurationField):
# class FloatField(DefaultFieldMixin, fields.FloatField):
# class IntegerField(DefaultFieldMixin, fields.IntegerField):
# class SlugField(DefaultFieldMixin, fields.SlugField):
# class RegexField(DefaultFieldMixin, fields.RegexField):
# class BooleanField(DefaultFieldMixin, fields.BooleanField):
# class NullBooleanField(DefaultFieldMixin, fields.NullBooleanField):
# class URLField(DefaultFieldMixin, fields.URLField):
# class RadioFieldMixin(DefaultFieldMixin):
# class ChoiceField(RadioFieldMixin, fields.ChoiceField):
# class ModelChoiceField(RadioFieldMixin, model_fields.ModelChoiceField):
# class TypedChoiceField(RadioFieldMixin, fields.TypedChoiceField):
# class MultipleFieldMixin(DefaultFieldMixin):
# class MultipleChoiceField(MultipleFieldMixin, fields.MultipleChoiceField):
# class ModelMultipleChoiceField(MultipleFieldMixin, model_fields.ModelMultipleChoiceField):
# class TypedMultipleChoiceField(MultipleFieldMixin, fields.TypedMultipleChoiceField):
# class UUIDField(DefaultFieldMixin, fields.UUIDField):
# class FileFieldMixin(DefaultFieldMixin):
# class FileField(FileFieldMixin, fields.FileField):
# class ImageField(FileFieldMixin, fields.ImageField):
#     def has_subwidgets(self):
#     def get_potential_errors(self):
#     def get_input_required_errors(self):
#     def get_min_max_length_errors(self):
#     def get_min_max_value_errors(self):
#     def get_invalid_value_errors(self, ng_error_key):
#     def update_widget_attrs(self, bound_field, attrs):
#     def get_potential_errors(self):
#     def get_potential_errors(self):
#     def get_potential_errors(self):
#     def get_email_regex(self):
#     def get_potential_errors(self):
#     def get_potential_errors(self):
#     def get_potential_errors(self):
#     def get_potential_errors(self):
#     def __init__(self, *args, **kwargs):
#     def widget_attrs(self, widget):
#     def get_potential_errors(self):
#     def get_potential_errors(self):
#     def get_potential_errors(self):
#     def has_subwidgets(self):
#     def update_widget_attrs(self, bound_field, attrs):
#     def update_widget_rendering_context(self, context):
#     def get_potential_errors(self):
#     def __init__(self, *args, **kwargs):
#     def has_subwidgets(self):
#     def update_widget_attrs(self, bound_field, attrs):
#     def update_widget_rendering_context(self, context):
#     def get_multiple_choices_required(self):
#     def has_subwidgets(self):
#     def get_potential_errors(self):
#     def update_widget_attrs(self, bound_field, attrs):
#     def implode_multi_values(self, name, data):
#     def convert_ajax_data(self, field_data):
#     def update_widget_rendering_context(self, context):
#     def get_potential_errors(self):
#     def to_python(self, value):
#     def remove_current(self, filename):
#     def __init__(self, *args, **kwargs):
#     def preview(cls, file_obj):
#     def __init__(self, *args, **kwargs):
#     def remove_current(self, image_name):
#     def preview(cls, file_obj):
# 
# Path: djng/styling/bootstrap3/forms.py
# class Bootstrap3Form(Bootstrap3FormMixin, NgFormBaseMixin, BaseForm, metaclass=NgDeclarativeFieldsMetaclass):
#     """
#     Convenience class to be used instead of Django's internal ``forms.Form`` when declaring
#     a form to be used with AngularJS and Bootstrap3 styling.
#     """


from django.forms import widgets
from django.core.exceptions import ValidationError
from djng.forms import fields
from djng.styling.bootstrap3.forms import Bootstrap3Form
    weight = fields.IntegerField(
        label='Weight in kg',
        min_value=42,
        max_value=95,
        error_messages={'min_value': 'You are too lightweight'})

    height = fields.FloatField(
        label='Height in meters',
        min_value=1.48,
        max_value=1.95,
        step=0.05,
        error_messages={'max_value': 'You are too tall'})

    traveling = fields.MultipleChoiceField(
        label='Traveling by',
        choices=TRAVELLING_BY,
        help_text='Choose one or more carriers',
        required=True)

    notifyme = fields.MultipleChoiceField(
        label='Notify by',
        choices=NOTIFY_BY,
        widget=widgets.CheckboxSelectMultiple,
        help_text='Must choose at least one type of notification')

    annotation = fields.CharField(
        label='Annotation',
        required=True,
        widget=widgets.Textarea(attrs={'cols': '80', 'rows': '3'}))


# Path: djng/forms/fields.py
# class DefaultFieldMixin(object):
# class Field(DefaultFieldMixin, fields.Field):
# class CharField(DefaultFieldMixin, fields.CharField):
# class DecimalField(DefaultFieldMixin, fields.DecimalField):
# class EmailField(DefaultFieldMixin, fields.EmailField):
# class DateField(DefaultFieldMixin, fields.DateField):
# class DateTimeField(DefaultFieldMixin, fields.DateTimeField):
# class TimeField(DefaultFieldMixin, fields.TimeField):
# class DurationField(DefaultFieldMixin, fields.DurationField):
# class FloatField(DefaultFieldMixin, fields.FloatField):
# class IntegerField(DefaultFieldMixin, fields.IntegerField):
# class SlugField(DefaultFieldMixin, fields.SlugField):
# class RegexField(DefaultFieldMixin, fields.RegexField):
# class BooleanField(DefaultFieldMixin, fields.BooleanField):
# class NullBooleanField(DefaultFieldMixin, fields.NullBooleanField):
# class URLField(DefaultFieldMixin, fields.URLField):
# class RadioFieldMixin(DefaultFieldMixin):
# class ChoiceField(RadioFieldMixin, fields.ChoiceField):
# class ModelChoiceField(RadioFieldMixin, model_fields.ModelChoiceField):
# class TypedChoiceField(RadioFieldMixin, fields.TypedChoiceField):
# class MultipleFieldMixin(DefaultFieldMixin):
# class MultipleChoiceField(MultipleFieldMixin, fields.MultipleChoiceField):
# class ModelMultipleChoiceField(MultipleFieldMixin, model_fields.ModelMultipleChoiceField):
# class TypedMultipleChoiceField(MultipleFieldMixin, fields.TypedMultipleChoiceField):
# class UUIDField(DefaultFieldMixin, fields.UUIDField):
# class FileFieldMixin(DefaultFieldMixin):
# class FileField(FileFieldMixin, fields.FileField):
# class ImageField(FileFieldMixin, fields.ImageField):
#     def has_subwidgets(self):
#     def get_potential_errors(self):
#     def get_input_required_errors(self):
#     def get_min_max_length_errors(self):
#     def get_min_max_value_errors(self):
#     def get_invalid_value_errors(self, ng_error_key):
#     def update_widget_attrs(self, bound_field, attrs):
#     def get_potential_errors(self):
#     def get_potential_errors(self):
#     def get_potential_errors(self):
#     def get_email_regex(self):
#     def get_potential_errors(self):
#     def get_potential_errors(self):
#     def get_potential_errors(self):
#     def get_potential_errors(self):
#     def __init__(self, *args, **kwargs):
#     def widget_attrs(self, widget):
#     def get_potential_errors(self):
#     def get_potential_errors(self):
#     def get_potential_errors(self):
#     def has_subwidgets(self):
#     def update_widget_attrs(self, bound_field, attrs):
#     def update_widget_rendering_context(self, context):
#     def get_potential_errors(self):
#     def __init__(self, *args, **kwargs):
#     def has_subwidgets(self):
#     def update_widget_attrs(self, bound_field, attrs):
#     def update_widget_rendering_context(self, context):
#     def get_multiple_choices_required(self):
#     def has_subwidgets(self):
#     def get_potential_errors(self):
#     def update_widget_attrs(self, bound_field, attrs):
#     def implode_multi_values(self, name, data):
#     def convert_ajax_data(self, field_data):
#     def update_widget_rendering_context(self, context):
#     def get_potential_errors(self):
#     def to_python(self, value):
#     def remove_current(self, filename):
#     def __init__(self, *args, **kwargs):
#     def preview(cls, file_obj):
#     def __init__(self, *args, **kwargs):
#     def remove_current(self, image_name):
#     def preview(cls, file_obj):
# 
# Path: djng/styling/bootstrap3/forms.py
# class Bootstrap3Form(Bootstrap3FormMixin, NgFormBaseMixin, BaseForm, metaclass=NgDeclarativeFieldsMetaclass):
#     """
#     Convenience class to be used instead of Django's internal ``forms.Form`` when declaring
#     a form to be used with AngularJS and Bootstrap3 styling.
#     """


# Path: examples/server/forms/subscribe_form.py
from django.forms import widgets
from django.core.exceptions import ValidationError
from djng.forms import fields
from djng.styling.bootstrap3.forms import Bootstrap3Form

    weight = fields.IntegerField(
        label='Weight in kg',
        min_value=42,
        max_value=95,
        error_messages={'min_value': 'You are too lightweight'})

    height = fields.FloatField(
        label='Height in meters',
        min_value=1.48,
        max_value=1.95,
        step=0.05,
        error_messages={'max_value': 'You are too tall'})

    traveling = fields.MultipleChoiceField(
        label='Traveling by',
        choices=TRAVELLING_BY,
        help_text='Choose one or more carriers',
        required=True)

    notifyme = fields.MultipleChoiceField(
        label='Notify by',
        choices=NOTIFY_BY,
        widget=widgets.CheckboxSelectMultiple,
        help_text='Must choose at least one type of notification')

    annotation = fields.CharField(
        label='Annotation',
        required=True,
        widget=widgets.Textarea(attrs={'cols': '80', 'rows': '3'}))


    agree = fields.BooleanField(