def add_fields(self, form, index): super(BaseDynamicInlineFormSet, self).add_fields(form, index) if self.can_delete: form_id = self.management_form.auto_id % self.management_form.prefix js_delete = "javascript:{BaseDynamicFormSet.markAsDeleted('%s-%s-', '%s');}" widget = widgets.CheckboxInput( attrs={ 'onchange': mark_safe(js_delete % (form_id, index, formsets.DELETION_FIELD_NAME)) }) form.fields[formsets.DELETION_FIELD_NAME].widget = widget
def __init__(self, result, *args, **kwargs): self.redirect_url = kwargs.pop("redirect_url", "") self.update_id = kwargs.pop("update_id", None) # Create the form instance, with initial data if it was given if result: self.result = result data = self._flatten_dictionary(result.params) super(BraintreeForm, self).__init__(data, *args, **kwargs) # Are there any errors we should display? errors = self._flatten_errors(result.errors.errors.data) self.errors.update(errors) else: super(BraintreeForm, self).__init__(*args, **kwargs) # Dynamically setup all the required form fields # This is required because of the strange naming scheme that uses # characters not supported in Python variable names. labels = self._flatten_dictionary(self.tr_labels) helptext = self._flatten_dictionary(self.tr_help) for key in self._flatten_dictionary(self.tr_fields).keys(): if key in labels: label = labels[key] else: label = key.split("[")[-1].strip("]").replace("_", " ").title() #override for default field if isinstance(self._flatten_dictionary(self.tr_fields)[key], forms.Field): self.fields[key] = self._flatten_dictionary(self.tr_fields)[key] self.fields[key].label = label continue if key in self.tr_boolean_fields: # A checkbox MUST set value="true" for Braintree to pick # it up properly, refer to Braintree ticket #26438 field = forms.BooleanField(label=label, required=False, widget=widgets.CheckboxInput(attrs={"checked": True, "value": "true", "class": "checkbox"})) elif key.endswith("[expiration_month]"): # Month selection should be a simple dropdown field = forms.ChoiceField(choices=[(x,x) for x in range(1, 13)], required=False, label=label) elif key.endswith("[expiration_year]"): # Year selection should be a simple dropdown year = datetime.date.today().year field = forms.ChoiceField(choices=[(x,x) for x in range(year, year + 16)], required=False, label=label) else: field = forms.CharField(label=label, required=False) if key in helptext: field.help_text = helptext[key] self.fields[key] = field
class Meta: model = Lunchbox fields = '__all__' widgets = { 'name': widgets.TextInput(attrs={'class': 'lb-name', 'placeholder': _('Name of lunchbox')}), 'desc': widgets.Textarea(attrs={'class': 'lb-name', 'placeholder': _('DESCRIPTION: Describe your lunchbox right now!')}), 'available_from': widgets.TextInput(attrs={'class': 'datepicker'}), 'available_till': widgets.TextInput(attrs={'class': 'datepicker'}), 'price': widgets.TextInput(attrs={'class': 'd4','placeholder': 'XX.XX'}), 'rate': widgets.TextInput(attrs={'class': 'd4', 'placeholder': 'XX.XX'}), 'total_calories': widgets.TextInput(attrs={'class': 'd4', 'placeholder': 'XXX'}), 'protein': widgets.TextInput(attrs={'class': 'd4', 'placeholder': 'XX'}), 'carbohydrates': widgets.TextInput(attrs={'class': 'd4', 'placeholder': 'XX'}), 'fat': widgets.TextInput(attrs={'class': 'd4', 'placeholder': 'XX'}), 'sugar': widgets.TextInput(attrs={'class': 'd4', 'placeholder': 'XX'}), 'sodium': widgets.TextInput(attrs={'class': 'd4', 'placeholder': 'XX'}), 'min_order': widgets.TextInput(attrs={'class': 'd2','placeholder': 'XX'}), 'photoshoot_requested': widgets.CheckboxInput(), 'publishing_requested': widgets.CheckboxInput(), 'published': widgets.CheckboxInput(), }
def value_from_datadict(self, data, files, name): """ Modify value_from_datadict, so that delete takes precedence over upload. """ file_value = super(widgets.ClearableFileInput, self)\ .value_from_datadict(data, files, name) checkbox_value = widgets.CheckboxInput()\ .value_from_datadict(data, files, self.clear_checkbox_name(name)) if not self.is_required and checkbox_value: return False return file_value
def __init__(self, sub_widget=widgets.TextInput, attrs=None, sub_label=''): super().__init__( widgets=( widgets.CheckboxInput( attrs={ 'onchange': 'creme.forms.optionalWidgetHandler(this)' }), sub_widget, ), attrs=attrs, ) self.sub_label = sub_label
class Meta: model = Product exclude = ['id', 'developer', 'manufacturer'] widgets = {'name': widgets.TextInput(attrs={'class': 'form-control'}), 'type': widgets.Select(attrs={'class': 'form-control'}), 'description': widgets.TextInput(attrs={'class': 'form-control'}), 'developer': widgets.TextInput(attrs={'class': 'form-control'}), 'manufacturer': widgets.Select(attrs={'class': 'form-control'}), 'release_year': widgets.NumberInput(attrs={'class': 'form-control'}), 'price': widgets.NumberInput(attrs={'class': 'form-control'}), 'on_sale': widgets.CheckboxInput(attrs={'class': 'checkbox'}) }
class BootstrapAccordionPlugin(TransparentMixin, BootstrapPluginBase): name = _("Accordion") form = AccordionForm default_css_class = 'panel-group' require_parent = True parent_classes = ('BootstrapColumnPlugin', ) allow_children = True child_classes = None render_template = 'cascade/bootstrap3/{}/accordion.html' fields = ( 'num_children', 'glossary', ) glossary_fields = ( PartialFormField('close_others', widgets.CheckboxInput(), label=_("Close others"), initial=True, help_text=_("Open only one panel at a time.")), PartialFormField('first_is_open', widgets.CheckboxInput(), label=_("First panel open"), initial=True, help_text=_("Start with the first panel open.")), ) @classmethod def get_identifier(cls, obj): identifier = super(BootstrapAccordionPlugin, cls).get_identifier(obj) num_cols = obj.get_children().count() content = ungettext_lazy('with {0} panel', 'with {0} panels', num_cols).format(num_cols) return format_html('{0}{1}', identifier, content) def save_model(self, request, obj, form, change): wanted_children = int(form.cleaned_data.get('num_children')) super(BootstrapAccordionPlugin, self).save_model(request, obj, form, change) self.extend_children(obj, wanted_children, BootstrapAccordionPanelPlugin)
class LoginForm(Form): """登录验证FORM""" username = fields.CharField( label="用户名:", widget=widgets.TextInput(attrs={ "id": "username", "class": "form-control", "placeholder": "请输入用户名" }), error_messages={"required": "用户名不能为空!"}) pwd = fields.CharField( label="密码:", widget=widgets.PasswordInput(attrs={ "id": "pwd", "class": "form-control", "placeholder": "请输入密码" }), error_messages={"required": "密码不能为空!"}) check_code = fields.CharField( label="验证码:", widget=widgets.TextInput(attrs={ "id": "check_code", "class": "form-control", "placeholder": "请输入验证码" }), error_messages={"required": "验证码不能为空!"}) remember = fields.CharField(required=False, widget=widgets.CheckboxInput()) def clean_username(self): """检查用户输入的用户名""" username = self.cleaned_data.get("username") obj = models.User.objects.filter(username=username).first() if not obj: raise ValidationError("用户不存在!", "invalid") return username def clean(self): """整体验证""" username = self.cleaned_data.get("username") # 获取用户输入的用户名 pwd = self.cleaned_data.get("pwd") # 获取用户输入的密码 if username: m_obj = hashlib.md5() # 获取一个加密对象 m_obj.update(pwd.encode()) # 加密密码 password = m_obj.hexdigest() # 获取加密的密码 obj = models.User.objects.filter( username=username).first() # 获取用户对象 if password != obj.pwd: # 检测密码输入是否正确 self.add_error("pwd", "密码错误!") return self.cleaned_data
class Bootstrap4ContainerPlugin(BootstrapPluginBase): name = _("Container") parent_classes = None require_parent = False form = BootstrapContainerForm glossary_variables = ['container_max_widths', 'media_queries'] glossary_field_order = ('breakpoints', 'fluid') breakpoints = GlossaryField( ContainerBreakpointsWidget(choices=get_widget_choices()), label=_('Available Breakpoints'), initial=list(BS4_BREAKPOINTS)[::-1], help_text=_("Supported display widths for Bootstrap's grid system.")) fluid = GlossaryField( widgets.CheckboxInput(), label=_('Fluid Container'), initial=False, help_text=_( "Changing your outermost '.container' to '.container-fluid'.")) @classmethod def get_identifier(cls, obj): identifier = super(Bootstrap4ContainerPlugin, cls).get_identifier(obj) breakpoints = obj.glossary.get('breakpoints') content = obj.glossary.get('fluid') and '(fluid) ' or '' if breakpoints: devices = ', '.join( [force_text(BS4_BREAKPOINTS[bp][2]) for bp in breakpoints]) content = _("{0}for {1}").format(content, devices) return format_html('{0}{1}', identifier, content) @classmethod def get_css_classes(cls, obj): css_classes = cls.super(Bootstrap4ContainerPlugin, cls).get_css_classes(obj) if obj.glossary.get('fluid'): css_classes.append('container-fluid') else: css_classes.append('container') return css_classes def save_model(self, request, obj, form, change): super(Bootstrap4ContainerPlugin, self).save_model(request, obj, form, change) obj.sanitize_children() @classmethod def sanitize_model(cls, obj): sanitized = super(Bootstrap4ContainerPlugin, cls).sanitize_model(obj) compute_media_queries(obj) return sanitized
class BootstrapContainerPlugin(BootstrapPluginBase): name = _("Container") parent_classes = None require_parent = False form = BootstrapContainerForm glossary_variables = ['container_max_widths', 'media_queries'] glossary_field_order = ['breakpoints', 'fluid'] model_mixins = (ContainerGridMixin, ) breakpoints = GlossaryField( ContainerBreakpointsWidget(choices=get_widget_choices()), label=_('Available Breakpoints'), initial=[ bp.name for bp in app_settings.CMSPLUGIN_CASCADE['bootstrap4'] ['fluid_bounds'].keys() ], help_text=_("Supported display widths for Bootstrap's grid system."), ) fluid = GlossaryField( widgets.CheckboxInput(), label=_('Fluid Container'), initial=False, help_text=_( "Changing your outermost '.container' to '.container-fluid'.")) @classmethod def get_identifier(cls, obj): identifier = super(BootstrapContainerPlugin, cls).get_identifier(obj) breakpoints = obj.glossary.get('breakpoints') content = obj.glossary.get('fluid') and '(fluid) ' or '' if breakpoints: breakpoints = app_settings.CMSPLUGIN_CASCADE['bootstrap4'][ 'fluid_bounds'] devices = ', '.join([force_text(bp.label) for bp in breakpoints]) content = _("{0}for {1}").format(content, devices) return format_html('{0}{1}', identifier, content) @classmethod def get_css_classes(cls, obj): css_classes = cls.super(BootstrapContainerPlugin, cls).get_css_classes(obj) if obj.glossary.get('fluid'): css_classes.append('container-fluid') else: css_classes.append('container') return css_classes def save_model(self, request, obj, form, change): super(BootstrapContainerPlugin, self).save_model(request, obj, form, change) obj.sanitize_children()
class LoginForm(forms.Form): username = fields.CharField( max_length=16, min_length=1, required=True, strip=True, widget=widgets.TextInput(attrs={"placeholder": "用户名"})) pwd = fields.CharField( required=True, max_length=32, min_length=6, strip=True, widget=widgets.PasswordInput(attrs={"placeholder": "密码"})) confirm_code = fields.CharField( required=True, max_length=4, min_length=4, strip=True, widget=widgets.TextInput(attrs={"placeholder": "验证码", "style": "width: 50%; float: left;"})) remenber_me = fields.CharField( required=False, widget=widgets.CheckboxInput(attrs={"id": "brand1"}) ) def __init__(self, right_code="", *args, **kwargs): super().__init__(*args, **kwargs) self.right_code = right_code def clean(self): try: username = self.cleaned_data["username"] pwd = self.cleaned_data["pwd"] if not models.User.objects.filter(username=username, pwd=pwd).exists(): raise ValidationError("密码输入有误") return self.cleaned_data except KeyError: return self.cleaned_data def clean_username(self): # 验证用户名是否输入正确 username = self.cleaned_data["username"] if not models.User.objects.filter(username=username).exists(): # 如果不存在,抛异常 raise ValidationError("用户名有误") return username def clean_confirm_code(self): # 判断验证码是否输入正确 code = self.cleaned_data['confirm_code'] if not self.right_code == code: raise ValidationError("验证码有误") return code
class XFormSerializer(serializers.HyperlinkedModelSerializer): formid = serializers.Field(source='id') metadata = serializers.SerializerMethodField('get_xform_metadata') owner = serializers.HyperlinkedRelatedField(view_name='user-detail', source='user', lookup_field='username') created_by = serializers.HyperlinkedRelatedField(view_name='user-detail', source='created_by', lookup_field='username') public = BooleanField(source='shared', widget=widgets.CheckboxInput()) public_data = BooleanField(source='shared_data') require_auth = BooleanField(source='require_auth', widget=widgets.CheckboxInput()) submission_count_for_today = serializers.Field( source='submission_count_for_today') tags = TagListSerializer(read_only=True) title = serializers.CharField(max_length=255, source='title') url = serializers.HyperlinkedIdentityField(view_name='xform-detail', lookup_field='pk') users = serializers.SerializerMethodField('get_xform_permissions') class Meta: model = XForm read_only_fields = ('json', 'xml', 'date_created', 'date_modified', 'encrypted', 'bamboo_dataset', 'last_submission_time') exclude = ('id', 'json', 'xml', 'xls', 'user', 'has_start_time', 'shared', 'shared_data') def get_xform_permissions(self, obj): return get_object_users_with_permissions(obj) def get_xform_metadata(self, obj): if obj: return MetaDataSerializer(obj.metadata_set.all(), many=True, context=self.context).data return []
def value_from_datadict(self, data, files, name): upload = super().value_from_datadict(data, files, name) if not self.is_required and widgets.CheckboxInput( ).value_from_datadict(data, files, self.clear_checkbox_name(name)): if upload: # If the user contradicts themselves (uploads a new file AND # checks the "clear" checkbox), we return a unique marker # object that FileField will turn into a ValidationError. return FILE_INPUT_CONTRADICTION # False signals to clear any existing value, as opposed to just None return False return upload
class Meta: model = envruleswitch fields = '__all__' widgets = { 'FID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FPID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FPort': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}), 'FStatus': Fwidgets.CheckboxInput(attrs={'lay-skin': 'switch', 'lay-text': '通|断'}), 'FCommand': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}), 'FDriverdevice': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}), 'FDesc': Fwidgets.Textarea(attrs={'class': 'layui-textarea', 'autocomplete': 'off', 'rows': '1'}) }
def render(self, name, value, attrs=None, renderer=None): html_id = attrs and attrs.get('id', name) or name has_image_set = self.is_initial(value) is_required = self.is_required file_placeholder = ugettext('Select a picture from your local folder.') file_input = super().render(name, None, { 'id': html_id, 'class': 'form-control form-control-file' }) if has_image_set: file_name = basename(value.name) file_url = conditional_escape(value.url) else: file_name = "" file_url = "" text_input = widgets.TextInput().render( '__noname__', file_name, { 'class': 'form-control form-control-file-dummy', 'placeholder': file_placeholder, 'tabindex': '-1', 'id': 'text-{}'.format(html_id) }) checkbox_id = self.clear_checkbox_id(name) checkbox_name = self.clear_checkbox_name(name) checkbox_input = widgets.CheckboxInput().render( checkbox_name, False, { 'id': checkbox_id, 'class': 'clear-image', 'data-upload-clear': html_id, }) context = { 'id': html_id, 'has_image_set': has_image_set, 'is_required': is_required, 'file_url': file_url, 'file_input': file_input, 'file_id': html_id + '-file', 'text_input': text_input, 'checkbox_input': checkbox_input, 'checkbox_id': checkbox_id } return loader.render_to_string('a4images/image_upload_widget.html', context)
class BootstrapAccordionPlugin(TransparentWrapper, BootstrapPluginBase): name = _("Accordion") form = AccordionForm default_css_class = 'accordion' require_parent = True parent_classes = ['BootstrapColumnPlugin'] direct_child_classes = ['BootstrapAccordionGroupPlugin'] allow_children = True render_template = 'cascade/bootstrap4/{}/accordion.html' fields = ['num_children', 'glossary'] close_others = GlossaryField(widgets.CheckboxInput(), label=_("Close others"), initial=True, help_text=_("Open only one card at a time.")) first_is_open = GlossaryField( widgets.CheckboxInput(), label=_("First open"), initial=True, help_text=_("Start with the first card open.")) @classmethod def get_identifier(cls, obj): identifier = super(BootstrapAccordionPlugin, cls).get_identifier(obj) num_cards = obj.get_num_children() content = ungettext_lazy('with {0} card', 'with {0} cards', num_cards).format(num_cards) return format_html('{0}{1}', identifier, content) def save_model(self, request, obj, form, change): wanted_children = int(form.cleaned_data.get('num_children')) super(BootstrapAccordionPlugin, self).save_model(request, obj, form, change) self.extend_children(obj, wanted_children, BootstrapAccordionGroupPlugin)
class Meta: model = appkey fields = '__all__' widgets = { 'FID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FAppID': Fwidgets.Input(attrs={'class': 'layui-input', 'autocomplete': 'off'}), 'FAppkey': Fwidgets.Input(attrs={'class': 'layui-input', 'autocomplete': 'off'}), 'FAppSecret': Fwidgets.Input(attrs={'class': 'layui-input', 'autocomplete': 'off'}), 'FType': Fwidgets.Select(attrs={'lay-verify': 'required'}), 'FAppName': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}), 'FAppCreateTime': Fwidgets.Input(attrs={'class': 'layui-input', 'autocomplete': 'off'}), 'FDesc': Fwidgets.Textarea(attrs={'class': 'layui-textarea', 'autocomplete': 'off', 'rows': '1'}), 'FStatus': Fwidgets.CheckboxInput(attrs={'lay-skin': 'switch', 'lay-text': '启用|禁用', 'disabled': 'disabled'}) }
class Meta: model = envrule fields = '__all__' widgets = { 'FID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FRule': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}), 'FNodename': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}), 'FMonitoritem': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}), 'FMonitorvalue': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}), 'FMonitorcondition': Fwidgets.Select(attrs={'lay-verify': 'required'}), 'FStatus': Fwidgets.CheckboxInput(attrs={'lay-skin': 'switch', 'lay-text': '启用|禁用', 'disabled': 'disabled'}), 'FDesc': Fwidgets.Textarea(attrs={'class': 'layui-textarea', 'autocomplete': 'off', 'rows': '1'}) }
def render(self, name, value, attrs=None): has_file_set = self.is_initial(value) is_required = self.is_required file_placeholder = ugettext('Select a file from your local folder.') file_input = super().render(name, None, { 'id': name, 'class': 'form-control form-control-file' }) if has_file_set: file_name = basename(value.name) file_url = conditional_escape(value.url) else: file_name = "" file_url = "" text_input = widgets.TextInput().render('__noname__', file_name, { 'class': 'form-control form-control-file-dummy', 'placeholder': file_placeholder }) checkbox_id = self.clear_checkbox_id(name) checkbox_name = self.clear_checkbox_name(name) checkbox_input = widgets.CheckboxInput().render(checkbox_name, False, { 'id': checkbox_id, 'class': 'clear-image', 'data-upload-clear': name, }) context = { 'name': name, 'has_image_set': has_file_set, 'is_required': is_required, 'file_url': file_url, 'file_input': file_input, 'file_id': name + '-file', 'text_input': text_input, 'checkbox_input': checkbox_input, 'checkbox_id': checkbox_id } return mark_safe( loader.render_to_string( 'euth_offlinephases/file_upload_widget.html', context ) )
class ShopProceedButton(BootstrapButtonMixin, ShopButtonPluginBase): """ This button is used to proceed from one checkout step to the next one. """ name = _("Proceed Button") parent_classes = [ 'BootstrapColumnPlugin', 'ProcessStepPlugin', 'ValidateSetOfFormsPlugin' ] model_mixins = (LinkElementMixin, ) glossary_field_order = [ 'disable_invalid', 'button_type', 'button_size', 'button_options', 'quick_float', 'icon_align', 'symbol' ] form = ProceedButtonForm ring_plugin = 'ProceedButtonPlugin' disable_invalid = GlossaryField( widgets.CheckboxInput(), label=_("Disable if invalid"), initial='', help_text=_("Disable button if any form in this set is invalid"), ) class Media: css = { 'all': [ 'cascade/css/admin/bootstrap4-buttons.css', 'cascade/css/admin/iconplugin.css' ] } js = ['shop/js/admin/proceedbuttonplugin.js'] def get_render_template(self, context, instance, placeholder): if instance.link == 'RELOAD_PAGE': button_template = 'reload-button' elif instance.link == 'PURCHASE_NOW': button_template = 'purchase-button' elif instance.link == 'DO_NOTHING': button_template = 'noop-button' else: button_template = 'proceed-button' template_names = [ '{}/checkout/{}.html'.format(app_settings.APP_LABEL, button_template), 'shop/checkout/{}.html'.format(button_template), ] return select_template(template_names)
class Question(forms.Form): title = forms.CharField( error_messages={ 'required': '请输入问卷名称', }, widget=widgets.EmailInput(attrs={ 'placeholder': "问卷名称", 'class': "form-control" }), ) cls = forms.CharField( error_messages={ 'required': '请输入国家代码', }, widget=widgets.CheckboxInput(attrs={'class': "form-control"}), )
class Meta: model = TravelInquiry fields = [ 'name', 'email', 'num_of_non_hunters', 'hunting_type', 'accommodation', 'time_start', 'time_end', 'inquiry', 'consent_to_be_contacted', 'phone' ] exclude = ['date', 'trip', 'user'] widgets = { 'time_start': widgets.DateInput(attrs={'placeholder': _('dd.mm.yyyy')}), 'time_end': widgets.DateInput(attrs={'placeholder': _('dd.mm.yyyy')}), 'consent_to_be_contacted': widgets.CheckboxInput(attrs={'required': True}) }
class BillingAddressFormPlugin(CheckoutAddressPluginBase): name = _("Billing Address Form") form_class = 'shop.forms.checkout.BillingAddressForm' template_leaf_name = 'billing-address-{}.html' allow_use_shipping = GlossaryField( widgets.CheckboxInput(), label=_("Use shipping address"), initial=True, help_text=_( "Allow the customer to use the shipping address for billing."), ) def get_address(self, cart): # if billing address is None, we use the shipping address return cart.billing_address
class AskquestionForm(forms.Form): title = fields.CharField( min_length=2, max_length=30, error_messages={ 'required': '标题不能为空!', 'max_length': '标题输入太长了', 'min_length': '标题输入太短了' }, widget=widgets.Input(attrs={'class': 'form-control'})) connet = fields.CharField(widget=widgets.Textarea( attrs={'class': 'form-control'})) feilei = forms.ModelChoiceField( queryset=Huafen.objects.filter(status=False), required=True) is_shi = fields.BooleanField(widget=widgets.CheckboxInput(), required=False)
class Meta: model = perfil_adoptante fields = ( 'circulo_familiar', 'experiencia_mascotas', 'hijos', 'casa_apartemento', 'casa_propia', 'lugar_seg_mascota', 'espacio_mascota', 'alergia_mascota', 'antes_mascotas', 'mas_mascotas', 'presupuesto_mascotas', 'mascota_sola', 'acepta_terminos', ) widgets = { 'circulo_familiar': TextInput(attrs={'class': 'form-control'}), 'experiencia_mascotas': Select(attrs={'class': 'form-control'}), 'hijos': Select(attrs={'class': 'form-control'}), 'casa_apartemento': Select(attrs={'class': 'form-control'}), 'casa_propia': Select(attrs={'class': 'form-control'}), 'lugar_seg_mascota': Select(attrs={'class': 'form-control'}), 'espacio_mascota': Select(attrs={'class': 'form-control'}), 'alergia_mascota': Select(attrs={'class': 'form-control'}), 'antes_mascotas': Select(attrs={'class': 'form-control'}), 'mas_mascotas': Select(attrs={'class': 'form-control'}), 'presupuesto_mascotas': Select(attrs={'class': 'form-control'}), 'mascota_sola': Select(attrs={'class': 'form-control'}), 'acepta_terminos': widgets.CheckboxInput(attrs={'class': 'form-control'}), }
class Meta: model = models.Discount fields = ['code', 'value_type', 'value', 'collection', 'on_entire_order',\ 'minimum_purchase', 'minimum_quantity', 'usage_limit', 'start_date', 'end_date'] widgets = { 'code': custom_widgets.TextInput(attrs={'placeholder': 'Code'}), 'value_type': widgets.Select(attrs={'class': 'form-control'}), 'value': custom_widgets.NumberInput(), 'collection': widgets.Select(attrs={'class': 'form-control'}), 'on_entire_order': widgets.CheckboxInput(), 'minimum_purchase': custom_widgets.NumberInput(), 'minimum_quantity': custom_widgets.NumberInput(), 'usage_limit': custom_widgets.NumberInput(), 'start_date': custom_widgets.DateInput(), 'end_date': custom_widgets.DateInput(), }
def __init__(self, request=None, *args, **kwargs): if request is None: raise TypeError("Keyword argument 'request' must be supplied.") super(ReportForm, self).__init__(*args, **kwargs) QUARTER_START_CHOICES = ( ('', '---'), ('01', 'January'), ('02', 'February'), ('03', 'March'), ('04', 'April'), ('05', 'May'), ('06', 'June'), ('07', 'July'), ('08', 'August'), ('09', 'September'), ('10', 'October'), ('11', 'November'), ('12', 'December'), ) self.request = request orgs = UserProfile.objects.filter(user__exact=request.user) org_choices, prod_choices, user_choices, cats_choices = [], [], [], [] for o in orgs: org_choices.append((o.org.id, o.org)) users = UserProfile.objects.filter(org=o.org) cats = Category.objects.filter(org=o.org) prods = Product.objects.filter(categories__in=cats) for p in prods: prod_choices.append((p.id, p.name)) for u in users: user_choices.append((u.id, "%s [%s]" % (u.user.get_full_name(), o.org))) for c in cats: cats_choices.append((c.id, "[%d] %s" % (c.id, c.name))) self.fields['orgs'].choices = org_choices self.fields['products'].choices = prod_choices self.fields['ordered_by'].choices = user_choices self.fields['categories'].choices = cats_choices self.fields['quarter_start'].widget = widgets.Select(choices=QUARTER_START_CHOICES) self.fields['start_date'].widget = widgets.TextInput(attrs={'class': 'datepicker', 'size': '12'}) self.fields['end_date'].widget = widgets.TextInput(attrs={'class': 'datepicker', 'size': '12'}) self.fields['last_orders'].widget = widgets.TextInput(attrs={'size': '3'}) self.fields['scheduled'].widget = widgets.CheckboxInput() self.fields['schedule'].widget = widgets.HiddenInput() self.fields['states'].widget = widgets.SelectMultiple(choices=Order.STATUS_CHOICES)
class Loginform(Form): name = fields.CharField(required=True, error_messages={'required': '不能为空'}, widget=widgets.TextInput(attrs={ 'placeholder': '用户名', 'class': 'username' })) password = fields.CharField( required=True, error_messages={'required': '不能为空'}, widget=widgets.PasswordInput(attrs={ 'placeholder': '密码', 'class': 'password' })) val = fields.BooleanField( required=False, widget=widgets.CheckboxInput(attrs={'value': 1})) #这个是设置一周免费登录
class Meta: model = busmenu fields = '__all__' widgets = { 'FID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FSequence': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}), 'FMenuID': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}), 'FMenuName': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}), 'FUrl': Fwidgets.Input(attrs={'class': 'layui-input', 'autocomplete': 'off'}), 'FMenuIcon': Fwidgets.Input(attrs={'class': 'layui-input', 'autocomplete': 'off'}), 'FMenuPosition': Fwidgets.Select(), 'FFoldState': Fwidgets.Select(), 'FFormState': Fwidgets.Select(), 'FStatus': Fwidgets.CheckboxInput(attrs={'lay-skin': 'switch', 'lay-text': '启用|禁用', 'disabled': 'disabled'}), }
class Meta: model = elecfencle fields = '__all__' widgets = { 'FID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FElecFence': Fwidgets.Input( attrs={ 'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off' }), 'FMonitortype': Fwidgets.Select(attrs={'lay-verify': 'required'}), 'FElecFenceCoordinate': Fwidgets.Input( attrs={ 'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off' }), 'FDeviation': Fwidgets.Input( attrs={ 'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off' }), 'FCoordinatetype': Fwidgets.Select(attrs={'lay-verify': 'required'}), 'FStatus': Fwidgets.CheckboxInput(attrs={ 'lay-skin': 'switch', 'lay-text': '启用|禁用', 'disabled': 'disabled' }), 'FDesc': Fwidgets.Textarea(attrs={ 'class': 'layui-textarea', 'autocomplete': 'off', 'rows': '1' }) }