Login

Debug data for forms

Author:
girasquid
Posted:
April 21, 2009
Language:
Python
Version:
1.0
Score:
1 (after 1 ratings)

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

  1. Template tag - list punctuation for a list of items by shapiromatron 10 months, 2 weeks ago
  2. JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 10 months, 3 weeks ago
  3. Serializer factory with Django Rest Framework by julio 1 year, 5 months ago
  4. Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 6 months ago
  5. Help text hyperlinks by sa2812 1 year, 6 months ago

Comments

jsandell (on May 13, 2009):

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

#

girasquid (on November 13, 2009):

And I'll have to take a look at Molybdenum :)

#

Please login first before commenting.