Exemplo n.º 1
0
    def _render(self, form, form_style, context, template_pack=TEMPLATE_PACK):
        attrs = self.get_attrs(form, form_style, context, template_pack=template_pack)
        hidden = []

        if self.initial:
            initial = {}
            for name in self.fields:
                field = get_bound_field(context, form, name)
                if not field:
                    continue
                if not hasattr(field.field, 'form'):
                    hidden.append(field.as_hidden(attrs=attrs))
                else:
                    if name in form.initial:
                        v = form.initial[name]
                        initial[name] = v
            fields = get_field_dict(form, initial, form.prefix)

        else:
            fields = {}
            for name in self.fields:
                field_name = '-'.join((form.prefix, name))
                if not hasattr(field.field, 'form'):
                    hidden.append(field.as_hidden(attrs=attrs))
                else:
                    for k, v in form.data.items():
                        if k.startswith(field_name):
                            fields[k] = v

        return render_to_string(self.template, {
            'hidden': hidden,
            'fields': fields,
            'field_classes': self.field_classes,
            'flat_attrs': self.flat_attrs,
        })
Exemplo n.º 2
0
    def _render(self, form, form_style, context, template_pack=TEMPLATE_PACK):
        attrs = self.get_attrs(form, form_style, context, template_pack=template_pack)

        fields = []
        bound_field = None
        if self.field:
            bound_field = get_bound_field(context, form, self.field)
        for field in self.fields:
            if bound_field is None and isinstance(field, six.string_types):
                bound_field = get_bound_field(context, form, field)
            fields.append(render_field(field, form, form_style, context, template=self.field_template, template_pack=template_pack))

        return render_to_string(self.template, {
            'input_size': self.input_size,
            'active': getattr(self, 'active', False),
            'fields': fields,
            'field': bound_field,
            'flat_attrs': flatatt(attrs),
        }, context)
Exemplo n.º 3
0
 def __call__(self, form, context):
     fields = self.fields or form.fields.keys()
     for name in fields:
         field = get_bound_field(context, form, name)
         if not field:
             continue
         if not self.deep and hasattr(field.field, 'form'):
             continue
         if name in field.form.changed_data:
             return True
     return False
Exemplo n.º 4
0
    def _render(self, form, form_style, context, template_pack=TEMPLATE_PACK):
        attrs = self.get_attrs(form, form_style, context, template_pack=template_pack)
        field_class = attrs.get('field-class')

        fields = []
        bound_field = None
        if self.field:
            bound_field = get_bound_field(context, form, self.field)
        for field in self.fields:
            if bound_field is None and isinstance(field, six.string_types):
                bound_field = get_bound_field(context, form, field)
            fields.append(render_field(field, form, form_style, context, template=self.field_template, attrs=attrs, template_pack=template_pack))

        return render_to_string(self.template, {
            'crispy_appended_text': self.appended_text,
            'crispy_prepended_text': self.prepended_text,
            'input_size': self.input_size,
            'active': getattr(self, 'active', False),
            'fields': fields,
            'field': bound_field,
            'css_id': attrs.get('id'),
            'css_class': attrs.get('class'),
            'field_class': field_class,
        }, context)
Exemplo n.º 5
0
 def __call__(self, form, context):
     fields = self.fields or form.fields.keys()
     for name in fields:
         field = get_bound_field(context, form, name)
         if not field:
             continue
         if not self.deep and hasattr(field.field, 'form'):
             continue
         _, _, name = name.rpartition('.')
         initial_value = field.form.initial.get(name, field.field.initial)
         if callable(initial_value):
             initial_value = initial_value()
         if not initial_value:
             return False
     return True
Exemplo n.º 6
0
    def _render(self, form, form_style, context, template_pack=TEMPLATE_PACK):
        attrs = self.get_attrs(form, form_style, context, template_pack=template_pack)

        field = self.fields[0]
        if not hasattr(field, 'render'):
            bound_field = get_bound_field(context, form, field)
            if bound_field:
                field = RawField(field)
            else:
                field = HTML(field)
        fields = render_field(field, form, form_style, context, template_pack=template_pack)

        css_class = attrs.pop('class', self.css_class)

        context.update({
            'tag': self.tag,
            'form': form,
            'div': self,
            'fields': fields,
            'css_class': css_class,
            'flat_attrs': flatatt(attrs)
        })
        return render_to_string(self.template, context)
Exemplo n.º 7
0
 def _render(self, form, form_style, context, template_pack=TEMPLATE_PACK):
     field = get_bound_field(context, form, self.field)
     if not field:
         return ''
     return self.prefix + field.auto_id + self.suffix