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. Generate and render HTML Table by LLyaudet 3 days, 11 hours ago
  2. My firs Snippets by GutemaG 6 days, 20 hours ago
  3. FileField having auto upload_to path by junaidmgithub 1 month, 1 week ago
  4. LazyPrimaryKeyRelatedField by LLyaudet 1 month, 3 weeks ago
  5. CacheInDictManager by LLyaudet 1 month, 3 weeks ago

Comments

Please login first before commenting.