http://stackoverflow.com/questions/21481229/django-1-6-how-does-the-form-as-p-decide-the-textfield-rows-and-and-cols

I have read the form.as_p method source code, still don't know.[image: 
enter image description here]

#models.py
class User(AbstractBaseUser):

    description = 
models.TextField(max_length=200,blank=True,verbose_name=_('个人说明'))
    #rest fields omitted...
#forms.pyclass ProfileForm(forms.ModelForm): 
    class Meta:
        model = User
        fields = [ 'description', ]
#template.html,edit the profile<form enctype="multipart/form-data" action="" 
method="post">{% csrf_token %}
    {{form.as_p}}
    <input type="submit" value="提交" /></form>

this is the source code:

def _html_output(self, normal_row, error_row, row_ender, help_text_html, 
errors_on_separate_row):
    "Helper function for outputting HTML. Used by as_table(), as_ul(), as_p()."
    top_errors = self.non_field_errors() # Errors that should be displayed 
above all fields.
    output, hidden_fields = [], []

    for name, field in self.fields.items():
        html_class_attr = ''
        bf = self[name]
        # Escape and cache in local variable.
        bf_errors = self.error_class([conditional_escape(error) for error in 
bf.errors])
        if bf.is_hidden:
            if bf_errors:
                top_errors.extend(
                    [_('(Hidden field %(name)s) %(error)s') % {'name': name, 
'error': force_text(e)}
                     for e in bf_errors])
            hidden_fields.append(six.text_type(bf))
        else:
            # Create a 'class="..."' atribute if the row should have any
            # CSS classes applied.
            css_classes = bf.css_classes()
            if css_classes:
                html_class_attr = ' class="%s"' % css_classes

            if errors_on_separate_row and bf_errors:
                output.append(error_row % force_text(bf_errors))

            if bf.label:
                label = conditional_escape(force_text(bf.label))
                label = bf.label_tag(label) or ''
            else:
                label = ''

            if field.help_text:
                help_text = help_text_html % force_text(field.help_text)
            else:
                help_text = ''

            output.append(normal_row % {
                'errors': force_text(bf_errors),
                'label': force_text(label),
                'field': six.text_type(bf),
                'help_text': help_text,
                'html_class_attr': html_class_attr
            })

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/2e0ad855-e52f-433a-ac33-a642b9a2f309%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to