import re
from django import forms
class LinkFieldWidget(Widget):
'''
A TextField widget with previewing link, generated from field's value with special url mask
'''
def __init__(self, text, url='%s', *args, **kwargs):
self.url = url
self.text = text
if not re.search('%', self.url):
raise forms.ValidationError, u'Invalid URL mask'
super(LinkFieldWidget, self).__init__(*args, **kwargs)
def render(self, name, value, attrs=None):
output = []
output.append('''''' % (name, value or '', name, self.url, '%s'))
if self.url and self.text:
output.append('%s' % (value and self.url % value or '#', name, value and 'inline' or 'none', self.text))
return mark_safe(u' '.join(output))