I sometimes find that larger forms need data associated with them, but it's a bit of a pain to retype it each time when I'm debugging. The DebugForm base class lets you specify sets of testing data that will be inserted into your form if your project is in debug mode, randomly chosen from the DEBUG_DATA dict.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | from django.conf import settings
import random
class DebugForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(DebugForm, self).__init__(*args, **kwargs)
if kwargs.get('instance'):
return
if settings.DEBUG:
for field in self.DEBUG_DATA.keys():
val = random.choice(self.DEBUG_DATA[field])
self.fields[field].initial = val
class MyForm(DebugForm):
DEBUG_DATA = {
'comment':['this is some sample data', 'this is some more sample data']
}
class Meta:
model = YourModel
|
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
Haven't tried it out, but that looks pretty cool. I've always just filled the form out once, recorded it with Molybdenum, and then "replayed" the form each time there after.
I'll definitely have to give this a whirl. :D
#
And I'll have to take a look at Molybdenum :)
#
Please login first before commenting.