Patch django form field for testing
In case you're wondering how to patch Django form field for testing purposes (like URLField that passes local uri: file://...) here's how:
from .forms import ThatForm
from django import forms
class MyTests(TestCase):
def test_pass_url(self):
orig_url = ThatForm.base_fields['url']
ThatForm.base_fields['url'] = forms.CharField()
# ... do your thing #
# and just in case set original field back,
# if other tests need it:
ThatForm.base_fields['url'] = orig_url
Permalink
Django smartspaceless
Default django spaceless tag is weird, it consumes all spaces between tags and none inside of them. It's good for small parts of site but...
...But I like my html to be cleared of all unnecessary mess which in many cases end up like this:
<a href="...">link1</a> <a href="...">link2</a>generates awful:
link1link2 In addition if you like having your templates indented it leaves awful things like:
<div>
Test text testt
</div> Here's my "smart" version of strip_spaces_between_tags which can be used with overrided spaceless template tag:
def strip_multiple_spaces_between_tags(value):
"""Returns the given HTML with multiple spaces between tags removed."""
def tagcheck(obj, prefix='', sufix=''):
tag = obj.group(1).lower()
if tag[0] == '/':
tag = tag[1:]
if tag != 'pre':
return '%s<%s>%s' % (prefix, ''.join(obj.groups('')), sufix)
return obj.group(0)
def tagprecheck(obj):
return tagcheck(obj, sufix=' ')
def tagpostcheck(obj):
return tagcheck(obj, prefix=' ')
value = force_unicode(value)
value = re.sub(r'<(/?[\w]+)([^>]*)>\s{2,}', tagprecheck, value);
value = re.sub(r'\s{2,}<(/?[\w]+)([^>]*)>', tagpostcheck, value)
value = re.sub(r'>\s{2,}<', '> <', value)
return value
strip_multiple_spaces_between_tags = allow_lazy(strip_multiple_spaces_between_tags, unicode) This does few things:
- it removes all multiple spaces between tags,
- it removes all multiple spaces at from "<tag> HERE text HERE </tag>" on all tags except pre.
Archiwum
- Luty 2016
- Październik 2015
- Wrzesień 2015
- Lipiec 2013
- Czerwiec 2013
- Kwiecień 2013
- Marzec 2013
- Grudzień 2011
- Listopad 2011
- Lipiec 2011
- Czerwiec 2011
- Luty 2010
- Wrzesień 2009
- Marzec 2009
- Luty 2009
In English