Form widget for text inputs with external link. version2

 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

  1. middleware: external links open in new window by christian 6 years, 6 months ago
  2. boostrap prepend-input for widgets by DimmuR 1 year, 6 months ago
  3. boostrap append-input for widgets by DimmuR 1 year, 6 months ago
  4. Autocomplete TextInput Widget w/ Static Data (jQuery UI) by JoeLinux 1 year, 1 month ago
  5. Custom Widget Types for HTML5 Form Fields by leveillej 3 years, 11 months ago

Comments

(Forgotten your password?)