This widget is answer for this question: http://stackoverflow.com/questions/946243/form-widget-for-text-inputs-with-external-link-wanted
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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('''<input type="text" name="%s" value="%s" onkeyup="$('a#%s-link').attr('href', '%s'.replace('%s', this.value)).css({'display': (this.value ? 'inline' : 'none')})" />''' % (name, value or '', name, self.url, '%s'))
if self.url and self.text:
output.append('<span><a href="%s" id="%s-link" target="blank" style="display: %s;">%s</a></span>' % (value and self.url % value or '#', name, value and 'inline' or 'none', self.text))
return mark_safe(u' '.join(output))
|
More like this
- Template tag - list punctuation for a list of items by shapiromatron 10 months, 1 week ago
- JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 10 months, 2 weeks ago
- Serializer factory with Django Rest Framework by julio 1 year, 5 months ago
- Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 6 months ago
- Help text hyperlinks by sa2812 1 year, 6 months ago
Comments
Please login first before commenting.