Login

StaticField for non-changing text data in forms

Author:
V
Posted:
May 25, 2009
Language:
Python
Version:
1.0
Tags:
forms field widget
Score:
1 (after 1 ratings)

This Field, Widget and the three lines of code in the form's clean method allow an easy (and hopefully general) way to add simple, unchangable text to a form.

Example use:

class OnlyTextForm(forms.ModelForm):

    points = StaticField(label=_('Points'))
    reviewer = StaticField(label=_('Reviewer'))

    def clean(self):
        for name, field in self.fields.items():
            if isinstance(field, StaticField):
                self.cleaned_data.update({name: self.initial[name]})

        return self.cleaned_data
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class NoInput(forms.Widget):
    def render(self, name, value, attrs=None):
        return mark_safe(value)

class StaticField(forms.Field):
    
    widget = NoInput
    
    def clean(self, value):
        return 

# Example usage
#class OnlyTextForm(forms.ModelForm):
#    
#    points = StaticField(label=_('Points'))
#    reviewer = StaticField(label=_('Reviewer'))
#    
#    def clean(self):
#        for name, field in self.fields.items():
#            if isinstance(field, StaticField):
#                self.cleaned_data.update({name: self.initial[name]})
#
#        return self.cleaned_data

More like this

  1. Automatically trim newforms text fields by miracle2k 7 years, 10 months ago
  2. Customizable newforms labels with a template tag by exogen 7 years, 3 months ago
  3. Dynamically change a form select widget to a hidden widget by epicserve 6 years ago
  4. RangeField and RangeWidget by marinho 6 years, 10 months ago
  5. User or Group entry field & widget by Scanner 8 years, 2 months ago

Comments

Please login first before commenting.