from django import forms
from django.utils.safestring import mark_safe
from django.db.models.loading import get_model
class HiddenInputWithText(forms.TextInput):
input_type = 'hidden'
def __init__(self, *args, **kwargs):
super(HiddenInputWithText, self).__init__(*args, **kwargs)
self.attrs = kwargs.get('attrs', {})
self.key = self.attrs.get('key', False)
def render(self, name, value, *args, **kwargs):
model = get_model('YOUR_APP_NAME', name)
if self.key:
text = unicode(model.objects.get(pk=value)) if value is not None and value != '' else '-----'
else:
text = value
html = '%s %s' % (super(HiddenInputWithText, self).render(name, value, self.attrs), text)
return mark_safe(html)
Comments