Login

StaticField for non-changing text data in forms

Author:
V
Posted:
May 25, 2009
Language:
Python
Version:
1.0
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. Image compression before saving the new model / work with JPG, PNG by Schleidens 1 week ago
  2. Help text hyperlinks by sa2812 1 month ago
  3. Stuff by NixonDash 3 months, 1 week ago
  4. Add custom fields to the built-in Group model by jmoppel 5 months, 1 week ago
  5. Month / Year SelectDateWidget based on django SelectDateWidget by pierreben 8 months, 3 weeks ago

Comments

Please login first before commenting.