Django

Code

Changeset 4208

Show
Ignore:
Timestamp:
12/15/06 12:00:50 (2 years ago)
Author:
adrian
Message:

Copied django.forms to django.oldforms and changed all code to reference django.oldforms instead of django.forms. Updated docs/forms.txt to add 'Forwards-compatibility' section that says you should not be using django.oldforms for any new projects.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/contrib/admin/views/auth.py

    r3925 r4208  
    33from django.contrib.auth.models import User 
    44from django.core.exceptions import PermissionDenied 
    5 from django import forms, template 
     5from django import oldforms, template 
    66from django.shortcuts import render_to_response 
    77from django.http import HttpResponseRedirect 
     
    2525    else: 
    2626        errors = new_data = {} 
    27     form = forms.FormWrapper(manipulator, new_data, errors) 
     27    form = oldforms.FormWrapper(manipulator, new_data, errors) 
    2828    return render_to_response('admin/auth/user/add_form.html', { 
    2929        'title': _('Add user'), 
  • django/trunk/django/contrib/admin/views/main.py

    r4181 r4208  
    1 from django import forms, template 
     1from django import oldforms, template 
    22from django.conf import settings 
    33from django.contrib.admin.filterspecs import FilterSpec 
     
    284284 
    285285    # Populate the FormWrapper. 
    286     form = forms.FormWrapper(manipulator, new_data, errors) 
     286    form = oldforms.FormWrapper(manipulator, new_data, errors) 
    287287 
    288288    c = template.RequestContext(request, { 
     
    375375 
    376376    # Populate the FormWrapper. 
    377     form = forms.FormWrapper(manipulator, new_data, errors) 
     377    form = oldforms.FormWrapper(manipulator, new_data, errors) 
    378378    form.original = manipulator.original_object 
    379379    form.order_objects = [] 
  • django/trunk/django/contrib/admin/views/template.py

    r3951 r4208  
    11from django.contrib.admin.views.decorators import staff_member_required 
    22from django.core import validators 
    3 from django import template, forms 
     3from django import template, oldforms 
    44from django.template import loader 
    55from django.shortcuts import render_to_response 
     
    2626    return render_to_response('admin/template_validator.html', { 
    2727        'title': 'Template validator', 
    28         'form': forms.FormWrapper(manipulator, new_data, errors), 
     28        'form': oldforms.FormWrapper(manipulator, new_data, errors), 
    2929    }, context_instance=template.RequestContext(request)) 
    3030template_validator = staff_member_required(template_validator) 
    3131 
    32 class TemplateValidator(forms.Manipulator): 
     32class TemplateValidator(oldforms.Manipulator): 
    3333    def __init__(self, settings_modules): 
    3434        self.settings_modules = settings_modules 
    3535        site_list = Site.objects.in_bulk(settings_modules.keys()).values() 
    3636        self.fields = ( 
    37             forms.SelectField('site', is_required=True, choices=[(s.id, s.name) for s in site_list]), 
    38             forms.LargeTextField('template', is_required=True, rows=25, validator_list=[self.isValidTemplate]), 
     37            oldforms.SelectField('site', is_required=True, choices=[(s.id, s.name) for s in site_list]), 
     38            oldforms.LargeTextField('template', is_required=True, rows=25, validator_list=[self.isValidTemplate]), 
    3939        ) 
    4040 
  • django/trunk/django/contrib/auth/forms.py

    r3908 r4208  
    44from django.template import Context, loader 
    55from django.core import validators 
    6 from django import forms 
     6from django import oldforms 
    77 
    8 class UserCreationForm(forms.Manipulator): 
     8class UserCreationForm(oldforms.Manipulator): 
    99    "A form that creates a user, with no privileges, from the given username and password." 
    1010    def __init__(self): 
    1111        self.fields = ( 
    12             forms.TextField(field_name='username', length=30, maxlength=30, is_required=True, 
     12            oldforms.TextField(field_name='username', length=30, maxlength=30, is_required=True, 
    1313                validator_list=[validators.isAlphaNumeric, self.isValidUsername]), 
    14             forms.PasswordField(field_name='password1', length=30, maxlength=60, is_required=True), 
    15             forms.PasswordField(field_name='password2', length=30, maxlength=60, is_required=True, 
     14            oldforms.PasswordField(field_name='password1', length=30, maxlength=60, is_required=True), 
     15            oldforms.PasswordField(field_name='password2', length=30, maxlength=60, is_required=True, 
    1616                validator_list=[validators.AlwaysMatchesOtherField('password1', _("The two password fields didn't match."))]), 
    1717        ) 
     
    2828        return User.objects.create_user(new_data['username'], '', new_data['password1']) 
    2929 
    30 class AuthenticationForm(forms.Manipulator): 
     30class AuthenticationForm(oldforms.Manipulator): 
    3131    """ 
    3232    Base class for authenticating users. Extend this to get a form that accepts 
     
    4242        self.request = request 
    4343        self.fields = [ 
    44             forms.TextField(field_name="username", length=15, maxlength=30, is_required=True, 
     44            oldforms.TextField(field_name="username", length=15, maxlength=30, is_required=True, 
    4545                validator_list=[self.isValidUser, self.hasCookiesEnabled]), 
    46             forms.PasswordField(field_name="password", length=15, maxlength=30, is_required=True), 
     46            oldforms.PasswordField(field_name="password", length=15, maxlength=30, is_required=True), 
    4747        ] 
    4848        self.user_cache = None 
     
    6969        return self.user_cache 
    7070 
    71 class PasswordResetForm(forms.Manipulator): 
     71class PasswordResetForm(oldforms.Manipulator): 
    7272    "A form that lets a user request a password reset" 
    7373    def __init__(self): 
    7474        self.fields = ( 
    75             forms.EmailField(field_name="email", length=40, is_required=True, 
     75            oldforms.EmailField(field_name="email", length=40, is_required=True, 
    7676                validator_list=[self.isValidUserEmail]), 
    7777        ) 
     
    106106        send_mail('Password reset on %s' % site_name, t.render(Context(c)), None, [self.user_cache.email]) 
    107107 
    108 class PasswordChangeForm(forms.Manipulator): 
     108class PasswordChangeForm(oldforms.Manipulator): 
    109109    "A form that lets a user change his password." 
    110110    def __init__(self, user): 
    111111        self.user = user 
    112112        self.fields = ( 
    113             forms.PasswordField(field_name="old_password", length=30, maxlength=30, is_required=True, 
     113            oldforms.PasswordField(field_name="old_password", length=30, maxlength=30, is_required=True, 
    114114                validator_list=[self.isValidOldPassword]), 
    115             forms.PasswordField(field_name="new_password1", length=30, maxlength=30, is_required=True, 
     115            oldforms.PasswordField(field_name="new_password1", length=30, maxlength=30, is_required=True, 
    116116                validator_list=[validators.AlwaysMatchesOtherField('new_password2', _("The two 'new password' fields didn't match."))]), 
    117             forms.PasswordField(field_name="new_password2", length=30, maxlength=30, is_required=True), 
     117            oldforms.PasswordField(field_name="new_password2", length=30, maxlength=30, is_required=True), 
    118118        ) 
    119119 
  • django/trunk/django/contrib/auth/views.py

    r3462 r4208  
    11from django.contrib.auth.forms import AuthenticationForm 
    22from django.contrib.auth.forms import PasswordResetForm, PasswordChangeForm 
    3 from django import forms 
     3from django import oldforms 
    44from django.shortcuts import render_to_response 
    55from django.template import RequestContext 
     
    2727    request.session.set_test_cookie() 
    2828    return render_to_response(template_name, { 
    29         'form': forms.FormWrapper(manipulator, request.POST, errors), 
     29        'form': oldforms.FormWrapper(manipulator, request.POST, errors), 
    3030        REDIRECT_FIELD_NAME: redirect_to, 
    3131        'site_name': Site.objects.get_current().name, 
     
    6363                form.save(email_template_name=email_template_name) 
    6464            return HttpResponseRedirect('%sdone/' % request.path) 
    65     return render_to_response(template_name, {'form': forms.FormWrapper(form, new_data, errors)}, 
     65    return render_to_response(template_name, {'form': oldforms.FormWrapper(form, new_data, errors)}, 
    6666        context_instance=RequestContext(request)) 
    6767 
     
    7878            form.save(new_data) 
    7979            return HttpResponseRedirect('%sdone/' % request.path) 
    80     return render_to_response(template_name, {'form': forms.FormWrapper(form, new_data, errors)}, 
     80    return render_to_response(template_name, {'form': oldforms.FormWrapper(form, new_data, errors)}, 
    8181        context_instance=RequestContext(request)) 
    8282password_change = login_required(password_change) 
  • django/trunk/django/contrib/comments/views/comments.py

    r3936 r4208  
    11from django.core import validators 
    2 from django import forms 
     2from django import oldforms 
    33from django.core.mail import mail_admins, mail_managers 
    44from django.http import Http404 
     
    2929                return [] 
    3030        self.fields.extend([ 
    31             forms.LargeTextField(field_name="comment", maxlength=3000, is_required=True, 
     31            oldforms.LargeTextField(field_name="comment", maxlength=3000, is_required=True, 
    3232                validator_list=[self.hasNoProfanities]), 
    33             forms.RadioSelectField(field_name="rating1", choices=choices, 
     33            oldforms.RadioSelectField(field_name="rating1", choices=choices, 
    3434                is_required=ratings_required and num_rating_choices > 0, 
    3535                validator_list=get_validator_list(1), 
    3636            ), 
    37             forms.RadioSelectField(field_name="rating2", choices=choices, 
     37            oldforms.RadioSelectField(field_name="rating2", choices=choices, 
    3838                is_required=ratings_required and num_rating_choices > 1, 
    3939                validator_list=get_validator_list(2), 
    4040            ), 
    41             forms.RadioSelectField(field_name="rating3", choices=choices, 
     41            oldforms.RadioSelectField(field_name="rating3", choices=choices, 
    4242                is_required=ratings_required and num_rating_choices > 2, 
    4343                validator_list=get_validator_list(3), 
    4444            ), 
    45             forms.RadioSelectField(field_name="rating4", choices=choices, 
     45            oldforms.RadioSelectField(field_name="rating4", choices=choices, 
    4646                is_required=ratings_required and num_rating_choices > 3, 
    4747                validator_list=get_validator_list(4), 
    4848            ), 
    49             forms.RadioSelectField(field_name="rating5", choices=choices, 
     49            oldforms.RadioSelectField(field_name="rating5", choices=choices, 
    5050                is_required=ratings_required and num_rating_choices > 4, 
    5151                validator_list=get_validator_list(5), 
    5252            ), 
    53             forms.RadioSelectField(field_name="rating6", choices=choices, 
     53            oldforms.RadioSelectField(field_name="rating6", choices=choices, 
    5454                is_required=ratings_required and num_rating_choices > 5, 
    5555                validator_list=get_validator_list(6), 
    5656            ), 
    57             forms.RadioSelectField(field_name="rating7", choices=choices, 
     57            oldforms.RadioSelectField(field_name="rating7", choices=choices, 
    5858                is_required=ratings_required and num_rating_choices > 6, 
    5959                validator_list=get_validator_list(7), 
    6060            ), 
    61             forms.RadioSelectField(field_name="rating8", choices=choices, 
     61            oldforms.RadioSelectField(field_name="rating8", choices=choices, 
    6262                is_required=ratings_required and num_rating_choices > 7, 
    6363                validator_list=get_validator_list(8), 
     
    118118        return c 
    119119 
    120 class PublicFreeCommentManipulator(forms.Manipulator): 
     120class PublicFreeCommentManipulator(oldforms.Manipulator): 
    121121    "Manipulator that handles public free (unregistered) comments" 
    122122    def __init__(self): 
    123123        self.fields = ( 
    124             forms.TextField(field_name="person_name", maxlength=50, is_required=True, 
     124            oldforms.TextField(field_name="person_name", maxlength=50, is_required=True, 
    125125                validator_list=[self.hasNoProfanities]), 
    126             forms.LargeTextField(field_name="comment", maxlength=3000, is_required=True, 
     126            oldforms.LargeTextField(field_name="comment", maxlength=3000, is_required=True, 
    127127                validator_list=[self.hasNoProfanities]), 
    128128        ) 
     
    222222        login(request, manipulator.get_user()) 
    223223    if errors or request.POST.has_key('preview'): 
    224         class CommentFormWrapper(forms.FormWrapper): 
     224        class CommentFormWrapper(oldforms.FormWrapper): 
    225225            def __init__(self, manipulator, new_data, errors, rating_choices): 
    226                 forms.FormWrapper.__init__(self, manipulator, new_data, errors) 
     226                oldforms.FormWrapper.__init__(self, manipulator, new_data, errors) 
    227227                self.rating_choices = rating_choices 
    228228            def ratings(self): 
     
    303303        return render_to_response('comments/free_preview.html', { 
    304304            'comment': comment, 
    305             'comment_form': forms.FormWrapper(manipulator, new_data, errors), 
     305            'comment_form': oldforms.FormWrapper(manipulator, new_data, errors), 
    306306            'options': options, 
    307307            'target': target, 
  • django/trunk/django/db/models/fields/generic.py

    r3787 r4208  
    33""" 
    44 
    5 from django import forms 
     5from django import oldforms 
    66from django.core.exceptions import ObjectDoesNotExist 
    77from django.db import backend 
     
    9999    def get_manipulator_field_objs(self): 
    100100        choices = self.get_choices_default() 
    101         return [curry(forms.SelectMultipleField, size=min(max(len(choices), 5), 15), choices=choices)] 
     101        return [curry(oldforms.SelectMultipleField, size=min(max(len(choices), 5), 15), choices=choices)] 
    102102 
    103103    def get_choices_default(self): 
  • django/trunk/django/db/models/fields/__init__.py

    r4205 r4208  
    33from django.conf import settings 
    44from django.core import validators 
    5 from django import forms 
     5from django import oldforms 
    66from django.core.exceptions import ObjectDoesNotExist 
    77from django.utils.functional import curry 
     
    207207        if self.choices: 
    208208            if self.radio_admin: 
    209                 field_objs = [forms.RadioSelectField] 
     209                field_objs = [oldforms.RadioSelectField] 
    210210                params['ul_class'] = get_ul_class(self.radio_admin) 
    211211            else: 
    212                 field_objs = [forms.SelectField] 
     212                field_objs = [oldforms.SelectField] 
    213213 
    214214            params['choices'] = self.get_choices_default() 
     
    219219    def get_manipulator_fields(self, opts, manipulator, change, name_prefix='', rel=False, follow=True): 
    220220        """ 
    221         Returns a list of forms.FormField instances for this field. It 
     221        Returns a list of oldforms.FormField instances for this field. It 
    222222        calculates the choices at runtime, not at compile time. 
    223223 
     
    361361 
    362362    def get_manipulator_field_objs(self): 
    363         return [forms.HiddenField] 
     363        return [oldforms.HiddenField] 
    364364 
    365365    def get_manipulator_new_data(self, new_data, rel=False): 
     
    388388 
    389389    def get_manipulator_field_objs(self): 
    390         return [forms.CheckboxField] 
     390        return [oldforms.CheckboxField] 
    391391 
    392392class CharField(Field): 
    393393    def get_manipulator_field_objs(self): 
    394         return [forms.TextField] 
     394        return [oldforms.TextField] 
    395395 
    396396    def to_python(self, value): 
     
    407407class CommaSeparatedIntegerField(CharField): 
    408408    def get_manipulator_field_objs(self): 
    409         return [forms.CommaSeparatedIntegerField] 
     409        return [oldforms.CommaSeparatedIntegerField] 
    410410 
    411411class DateField(Field): 
     
    469469 
    470470    def get_manipulator_field_objs(self): 
    471         return [forms.DateField] 
     471        return [oldforms.DateField] 
    472472 
    473473    def flatten_data(self, follow, obj = None): 
     
    510510 
    511511    def get_manipulator_field_objs(self): 
    512         return [forms.DateField, forms.TimeField] 
     512        return [oldforms.DateField, oldforms.TimeField] 
    513513 
    514514    def get_manipulator_field_names(self, name_prefix): 
     
    542542 
    543543    def get_manipulator_field_objs(self): 
    544         return [forms.EmailField] 
     544        return [oldforms.EmailField] 
    545545 
    546546    def validate(self, field_data, all_data): 
     
    606606 
    607607    def get_manipulator_field_objs(self): 
    608         return [forms.FileUploadField, forms.HiddenField] 
     608        return [oldforms.FileUploadField, oldforms.HiddenField] 
    609609 
    610610    def get_manipulator_field_names(self, name_prefix): 
     
    634634 
    635635    def get_manipulator_field_objs(self): 
    636         return [curry(forms.FilePathField, path=self.path, match=self.match, recursive=self.recursive)] 
     636        return [curry(oldforms.FilePathField, path=self.path, match=self.match, recursive=self.recursive)] 
    637637 
    638638class FloatField(Field): 
     
    643643 
    644644    def get_manipulator_field_objs(self): 
    645         return [curry(forms.FloatField, max_digits=self.max_digits, decimal_places=self.decimal_places)] 
     645        return [curry(oldforms.FloatField, max_digits=self.max_digits, decimal_places=self.decimal_places)] 
    646646 
    647647class ImageField(FileField): 
     
    651651 
    652652    def get_manipulator_field_objs(self): 
    653         return [forms.ImageUploadField, forms.HiddenField] 
     653        return [oldforms.ImageUploadField, oldforms.HiddenField] 
    654654 
    655655    def contribute_to_class(self, cls, name): 
     
    677677    empty_strings_allowed = False 
    678678    def get_manipulator_field_objs(self): 
    679         return [forms.IntegerField] 
     679        return [oldforms.IntegerField] 
    680680 
    681681class IPAddressField(Field): 
     
    685685 
    686686    def get_manipulator_field_objs(self): 
    687         return [forms.IPAddressField] 
     687        return [oldforms.IPAddressField] 
    688688 
    689689    def validate(self, field_data, all_data): 
     
    696696 
    697697    def get_manipulator_field_objs(self): 
    698         return [forms.NullBooleanField] 
     698        return [oldforms.NullBooleanField] 
    699699 
    700700class PhoneNumberField(IntegerField): 
    701701    def get_manipulator_field_objs(self): 
    702         return [forms.PhoneNumberField] 
     702        return [oldforms.PhoneNumberField] 
    703703 
    704704    def validate(self, field_data, all_data): 
     
    707707class PositiveIntegerField(IntegerField): 
    708708    def get_manipulator_field_objs(self): 
    709         return [forms.PositiveIntegerField] 
     709        return [oldforms.PositiveIntegerField] 
    710710 
    711711class PositiveSmallIntegerField(IntegerField): 
    712712    def get_manipulator_field_objs(self): 
    713         return [forms.PositiveSmallIntegerField] 
     713        return [oldforms.PositiveSmallIntegerField] 
    714714 
    715715class SlugField(Field): 
     
    723723 
    724724    def get_manipulator_field_objs(self): 
    725         return [forms.TextField] 
     725        return [oldforms.TextField] 
    726726 
    727727class SmallIntegerField(IntegerField): 
    728728    def get_manipulator_field_objs(self): 
    729         return [forms.SmallIntegerField] 
     729        return [oldforms.SmallIntegerField] 
    730730 
    731731class TextField(Field): 
    732732    def get_manipulator_field_objs(self): 
    733         return [forms.LargeTextField] 
     733        return [oldforms.LargeTextField] 
    734734 
    735735class TimeField(Field): 
     
    767767 
    768768    def get_manipulator_field_objs(self): 
    769         return [forms.TimeField] 
     769        return [oldforms.TimeField] 
    770770 
    771771    def flatten_data(self,follow, obj = None): 
     
    780780 
    781781    def get_manipulator_field_objs(self): 
    782         return [forms.URLField] 
     782        return [oldforms.URLField] 
    783783 
    784784class USStateField(Field): 
    785785    def get_manipulator_field_objs(self): 
    786         return [forms.USStateField] 
     786        return [oldforms.USStateField] 
    787787 
    788788class XMLField(TextField): 
     
    795795 
    796796    def get_manipulator_field_objs(self): 
    797         return [curry(forms.XMLLargeTextField, schema_path=self.schema_path)] 
     797        return [curry(oldforms.XMLLargeTextField, schema_path=self.schema_path)] 
    798798 
    799799class OrderingField(IntegerField): 
     
    808808 
    809809    def get_manipulator_fields(self, opts, manipulator, change, name_prefix='', rel=False, follow=True): 
    810         return [forms.HiddenField(name_prefix + self.name)] 
     810        return [oldforms.HiddenField(name_prefix + self.name)] 
  • django/trunk/django/db/models/fields/related.py

    r3926 r4208  
    66from django.utils.functional import curry 
    77from django.core import validators 
    8 from django import forms 
     8from django import oldforms 
    99from django.dispatch import dispatcher 
    1010 
     
    494494        else: 
    495495            if self.radio_admin: 
    496                 field_objs = [forms.RadioSelectField] 
     496                field_objs = [oldforms.RadioSelectField] 
    497497                params['ul_class'] = get_ul_class(self.radio_admin) 
    498498            else: 
    499499                if self.null: 
    500                     field_objs = [forms.NullSelectField] 
     500                    field_objs = [oldforms.NullSelectField] 
    501501                else: 
    502                     field_objs = [forms.SelectField] 
     502                    field_objs = [oldforms.SelectField] 
    503503            params['choices'] = self.get_choices_default() 
    504504        return field_objs, params 
     
    509509            return rel_field.get_manipulator_field_objs() 
    510510        else: 
    511             return [forms.IntegerField] 
     511            return [oldforms.IntegerField] 
    512512 
    513513    def get_db_prep_save(self, value): 
     
    582582        else: 
    583583            if self.radio_admin: 
    584                 field_objs = [forms.RadioSelectField] 
     584                field_objs = [oldforms.RadioSelectField] 
    585585                params['ul_class'] = get_ul_class(self.radio_admin) 
    586586            else: 
    587587                if self.null: 
    588                     field_objs = [forms.NullSelectField] 
     588                    field_objs = [oldforms.NullSelectField] 
    589589                else: 
    590                     field_objs = [forms.SelectField] 
     590                    field_objs = [oldforms.SelectField] 
    591591            params['choices'] = self.get_choices_default() 
    592592        return field_objs, params 
     
    623623    def get_manipulator_field_objs(self): 
    624624        if self.rel.raw_id_admin: 
    625             return [forms.RawIdAdminField] 
     625            return [oldforms.RawIdAdminField] 
    626626        else: 
    627627            choices = self.get_choices_default() 
    628             return [curry(forms.SelectMultipleField, size=min(max(len(choices), 5), 15), choices=choices)] 
     628            return [curry(oldforms.SelectMultipleField, size=min(max(len(choices), 5), 15), choices=choices)] 
    629629 
    630630    def get_choices_default(self): 
  • django/trunk/django/db/models/manipulators.py

    r4028 r4208  
    11from django.core.exceptions import ObjectDoesNotExist 
    2 from django import forms 
     2from django import oldforms 
    33from django.core import validators 
    44from django.db.models.fields import FileField, AutoField 
     
    4141            return self.man 
    4242 
    43 class AutomaticManipulator(forms.Manipulator): 
     43class AutomaticManipulator(oldforms.Manipulator): 
    4444    def _prepare(cls, model): 
    4545        cls.model = model 
     
    7777        # Add field for ordering. 
    7878        if self.change and self.opts.get_ordered_objects(): 
    79             self.fields.append(forms.CommaSeparatedIntegerField(field_name="order_")) 
     79            self.fields.append(oldforms.CommaSeparatedIntegerField(field_name="order_")) 
    8080 
    8181    def save(self, new_data): 
     
    309309    from django.db.models.fields.related import ManyToOneRel 
    310310    date_str = all_data.get(date_field.get_manipulator_field_names('')[0], None) 
    311     date_val = forms.DateField.html2python(date_str) 
     311    date_val = oldforms.DateField.html2python(date_str) 
    312312    if date_val is None: 
    313313        return # Date was invalid. This will be caught by another validator. 
  • django/trunk/django/views/generic/create_update.py

    r3849 r4208  
    11from django.core.xheaders import populate_xheaders 
    22from django.template import loader 
    3 from django import forms 
     3from django import oldforms 
    44from django.db.models import FileField 
    55from django.contrib.auth.views import redirect_to_login 
     
    5757 
    5858    # Create the FormWrapper, template, context, response 
    59     form = forms.FormWrapper(manipulator, new_data, errors) 
     59    form = oldforms.FormWrapper(manipulator, new_data, errors) 
    6060    if not template_name: 
    6161        template_name = "%s/%s_form.html" % (model._meta.app_label, model._meta.object_name.lower()) 
     
    129129        new_data = manipulator.flatten_data() 
    130130 
    131     form = forms.FormWrapper(manipulator, new_data, errors) 
     131    form = oldforms.FormWrapper(manipulator, new_data, errors) 
    132132    if not template_name: 
    133133        template_name = "%s/%s_form.html" % (model._meta.app_label, model._meta.object_name.lower()) 
  • django/trunk/docs/forms.txt

    r4052 r4208  
    33=============================== 
    44 
     5Forwards-compatibility note 
     6=========================== 
     7 
     8The legacy forms/manipulators system described in this document is going to be 
     9replaced in the next Django release. If you're starting from scratch, we 
     10strongly encourage you not to waste your time learning this. Instead, learn and 
     11use the django.newforms system, which we have begun to document in the 
     12`newforms documentation`_. 
     13 
     14If you have legacy form/manipulator code, read the "Migration plan" section in 
     15that document to understand how we're making the switch. 
     16 
     17.. _newforms documentation: http://www.djangoproject.com/documentation/newforms/ 
     18 
     19Introduction 
     20============ 
     21 
    522Once you've got a chance to play with Django's admin interface, you'll probably 
    623wonder if the fantastic form validation framework it uses is available to user 
    724code. It is, and this document explains how the framework works. 
    8  
    9     .. admonition:: A note to the lazy 
    10  
    11         If all you want to do is present forms for a user to create and/or 
    12         update a given object, you may be able to use `generic views`_. 
    1325 
    1426We'll take a top-down approach to examining Django's form validation framework, 
     
    4254but what if you want to allow public users to submit places? 
    4355 
    44 Manipulators 
    45 ============ 
     56Automatic Manipulators 
     57====================== 
    4658 
    4759The highest-level interface for object creation and modification is the 
    48 **Manipulator** framework. A manipulator is a utility class tied to a given 
    49 model that "knows" how to create or modify instances of that model and how to 
    50 validate data for the object. Manipulators come in two flavors: 
    51 ``AddManipulators`` and ``ChangeManipulators``. Functionally they are quite 
    52 similar, but the former knows how to create new instances of the model, whil
    53 the latter modifies existing instances. Both types of classes are automatically 
    54 created when you define a new class:: 
     60**automatic Manipulator** framework. An automatic manipulator is a utility 
     61class tied to a given model that "knows" how to create or modify instances of 
     62that model and how to validate data for the object. Automatic Manipulators come 
     63in two flavors: ``AddManipulators`` and ``ChangeManipulators``. Functionally 
     64they are quite similar, but the former knows how to create new instances of th
     65model, while the latter modifies existing instances. Both types of classes are 
     66automatically created when you define a new class:: 
    5567 
    5668    >>> from mysite.myapp.models import Place 
  • django/trunk/docs/generic_views.txt

    r3953 r4208  
    903903In addition to ``extra_context``, the template's context will be: 
    904904 
    905     * ``form``: A ``django.forms.FormWrapper`` instance representing the form 
     905    * ``form``: A ``django.oldforms.FormWrapper`` instance representing the form 
    906906      for editing the object. This lets you refer to form fields easily in the 
    907907      template system. 
     
    985985In addition to ``extra_context``, the template's context will be: 
    986986 
    987     * ``form``: A ``django.forms.FormWrapper`` instance representing the form 
     987    * ``form``: A ``django.oldforms.FormWrapper`` instance representing the form 
    988988      for editing the object. This lets you refer to form fields easily in the 
    989989      template system.