* /usr/local/lib/site-python/django/core/handlers/base.py in get_response 70. # Apply view middleware 71. for middleware_method in self._view_middleware: 72. response = middleware_method(request, callback, callback_args, callback_kwargs) 73. if response: 74. return response 75. 76. try: 77. response = callback(request, *callback_args, **callback_kwargs) ... 78. except Exception, e: 79. # If the view raised an exception, run it through exception 80. # middleware, and if the exception middleware returns a 81. # response, use that. Otherwise, reraise the exception. 82. for middleware_method in self._exception_middleware: 83. response = middleware_method(request, e) ▶ Local vars Variable Value callback callback_args ('campaign', 'campaign') callback_kwargs {} debug e IndexError('string index out of range',) exceptions mail_admins middleware_method > request , POST:, COOKIES:{'sessionid': '967791df4d8938d301f662e23af9f842'}, META:{'CONTENT_LENGTH': '202', 'CONTENT_TYPE': 'application/x-www-form-urlencoded', 'DJANGO_SETTINGS_MODULE': 'pinz.settings', 'GATEWAY_INTERFACE': 'CGI/1.1', 'GTK2_RC_FILES': '/home/johnc/.gtkrc-2.0', 'HOME': '/home/johnc', 'HTTP_ACCEPT': 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CACHE_CONTROL': 'max-age=0', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'sessionid=967791df4d8938d301f662e23af9f842', 'HTTP_HOST': 'pinz.blueaudiotext.com:4321', 'HTTP_KEEP_ALIVE': '300', 'HTTP_REFERER': 'http://pinz.blueaudiotext.com:4321/admin/campaign/campaign/add/', 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.3) Gecko/20061201 Firefox/2.0.0.3 (Ubuntu-feisty)', 'LANG': 'en_US.UTF-8', 'LANGUAGE': 'en_US:en_GB:en', 'LOGNAME': 'johnc', 'LS_COLORS': 'no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.flac=01;35:*.mp3=01;35:*.mpc=01;35:*.ogg=01;35:*.wav=01;35:', 'MAIL': '/var/mail/johnc', 'OLDPWD': '/home/johnc/projects', 'PATH': '/home/johnc/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games:/home/johnc/bin', 'PATH_INFO': '/admin/campaign/campaign/add/', 'PS1': '\\n[ \\e[1;33m\\u@\\h | \\d | \\t \\e[1;37m]\\n> ', 'PWD': '/home/johnc/projects/pinz/src/trunk/pinz', 'QUERY_STRING': '', 'REMOTE_ADDR': '10.232.60.18', 'REMOTE_HOST': '', 'REQUEST_METHOD': 'POST', 'RUN_MAIN': 'true', 'SCRIPT_NAME': '', 'SERVER_NAME': 'pinz.blueaudiotext.com', 'SERVER_PORT': '4321', 'SERVER_PROTOCOL': 'HTTP/1.1', 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.5.1c1', 'SHELL': '/bin/bash', 'SHLVL': '1', 'SSH_CLIENT': '10.232.60.18 32992 22', 'SSH_CONNECTION': '10.232.60.18 32992 192.168.10.149 22', 'SSH_TTY': '/dev/pts/3', 'SVKDIFF': 'kdiff3', 'TERM': 'xterm', 'TZ': 'US/Pacific', 'USER': 'johnc', '_': './manage.py', 'wsgi.errors': ', mode 'w' at 0xb7d550b0>, 'wsgi.file_wrapper': , 'wsgi.input': , 'wsgi.multiprocess': False, 'wsgi.multithread': True, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}> resolver response None self settings urlconf 'pinz.urls' urlresolvers * /usr/local/lib/site-python/django/contrib/admin/views/decorators.py in _checklogin 48. def _checklogin(request, *args, **kwargs): 49. if request.user.is_authenticated() and request.user.is_staff: 50. # The user is valid. Continue to the admin page. 51. if request.POST.has_key('post_data'): 52. # User must have re-authenticated through a different window 53. # or tab. 54. request.POST = _decode_post_data(request.POST['post_data']) 55. return view_func(request, *args, **kwargs) ... 56. 57. assert hasattr(request, 'session'), "The Django admin requires session middleware to be installed. Edit your MIDDLEWARE_CLASSES setting to insert 'django.contrib.sessions.middleware.SessionMiddleware'." 58. 59. # If this isn't already the login page, display it. 60. if not request.POST.has_key(LOGIN_FORM_KEY): 61. if request.POST: ▶ Local vars Variable Value args ('campaign', 'campaign') kwargs {} request , POST:, COOKIES:{'sessionid': '967791df4d8938d301f662e23af9f842'}, META:{'CONTENT_LENGTH': '202', 'CONTENT_TYPE': 'application/x-www-form-urlencoded', 'DJANGO_SETTINGS_MODULE': 'pinz.settings', 'GATEWAY_INTERFACE': 'CGI/1.1', 'GTK2_RC_FILES': '/home/johnc/.gtkrc-2.0', 'HOME': '/home/johnc', 'HTTP_ACCEPT': 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CACHE_CONTROL': 'max-age=0', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'sessionid=967791df4d8938d301f662e23af9f842', 'HTTP_HOST': 'pinz.blueaudiotext.com:4321', 'HTTP_KEEP_ALIVE': '300', 'HTTP_REFERER': 'http://pinz.blueaudiotext.com:4321/admin/campaign/campaign/add/', 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.3) Gecko/20061201 Firefox/2.0.0.3 (Ubuntu-feisty)', 'LANG': 'en_US.UTF-8', 'LANGUAGE': 'en_US:en_GB:en', 'LOGNAME': 'johnc', 'LS_COLORS': 'no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.flac=01;35:*.mp3=01;35:*.mpc=01;35:*.ogg=01;35:*.wav=01;35:', 'MAIL': '/var/mail/johnc', 'OLDPWD': '/home/johnc/projects', 'PATH': '/home/johnc/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games:/home/johnc/bin', 'PATH_INFO': '/admin/campaign/campaign/add/', 'PS1': '\\n[ \\e[1;33m\\u@\\h | \\d | \\t \\e[1;37m]\\n> ', 'PWD': '/home/johnc/projects/pinz/src/trunk/pinz', 'QUERY_STRING': '', 'REMOTE_ADDR': '10.232.60.18', 'REMOTE_HOST': '', 'REQUEST_METHOD': 'POST', 'RUN_MAIN': 'true', 'SCRIPT_NAME': '', 'SERVER_NAME': 'pinz.blueaudiotext.com', 'SERVER_PORT': '4321', 'SERVER_PROTOCOL': 'HTTP/1.1', 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.5.1c1', 'SHELL': '/bin/bash', 'SHLVL': '1', 'SSH_CLIENT': '10.232.60.18 32992 22', 'SSH_CONNECTION': '10.232.60.18 32992 192.168.10.149 22', 'SSH_TTY': '/dev/pts/3', 'SVKDIFF': 'kdiff3', 'TERM': 'xterm', 'TZ': 'US/Pacific', 'USER': 'johnc', '_': './manage.py', 'wsgi.errors': ', mode 'w' at 0xb7d550b0>, 'wsgi.file_wrapper': , 'wsgi.input': , 'wsgi.multiprocess': False, 'wsgi.multithread': True, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}> view_func * /usr/local/lib/site-python/django/views/decorators/cache.py in _wrapped_view_func 32. 33. def never_cache(view_func): 34. """ 35. Decorator that adds headers to a response so that it will 36. never be cached. 37. """ 38. def _wrapped_view_func(request, *args, **kwargs): 39. response = view_func(request, *args, **kwargs) ... 40. add_never_cache_headers(response) 41. return response 42. return _wrapped_view_func ▶ Local vars Variable Value args ('campaign', 'campaign') kwargs {} request , POST:, COOKIES:{'sessionid': '967791df4d8938d301f662e23af9f842'}, META:{'CONTENT_LENGTH': '202', 'CONTENT_TYPE': 'application/x-www-form-urlencoded', 'DJANGO_SETTINGS_MODULE': 'pinz.settings', 'GATEWAY_INTERFACE': 'CGI/1.1', 'GTK2_RC_FILES': '/home/johnc/.gtkrc-2.0', 'HOME': '/home/johnc', 'HTTP_ACCEPT': 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CACHE_CONTROL': 'max-age=0', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'sessionid=967791df4d8938d301f662e23af9f842', 'HTTP_HOST': 'pinz.blueaudiotext.com:4321', 'HTTP_KEEP_ALIVE': '300', 'HTTP_REFERER': 'http://pinz.blueaudiotext.com:4321/admin/campaign/campaign/add/', 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.3) Gecko/20061201 Firefox/2.0.0.3 (Ubuntu-feisty)', 'LANG': 'en_US.UTF-8', 'LANGUAGE': 'en_US:en_GB:en', 'LOGNAME': 'johnc', 'LS_COLORS': 'no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.flac=01;35:*.mp3=01;35:*.mpc=01;35:*.ogg=01;35:*.wav=01;35:', 'MAIL': '/var/mail/johnc', 'OLDPWD': '/home/johnc/projects', 'PATH': '/home/johnc/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games:/home/johnc/bin', 'PATH_INFO': '/admin/campaign/campaign/add/', 'PS1': '\\n[ \\e[1;33m\\u@\\h | \\d | \\t \\e[1;37m]\\n> ', 'PWD': '/home/johnc/projects/pinz/src/trunk/pinz', 'QUERY_STRING': '', 'REMOTE_ADDR': '10.232.60.18', 'REMOTE_HOST': '', 'REQUEST_METHOD': 'POST', 'RUN_MAIN': 'true', 'SCRIPT_NAME': '', 'SERVER_NAME': 'pinz.blueaudiotext.com', 'SERVER_PORT': '4321', 'SERVER_PROTOCOL': 'HTTP/1.1', 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.5.1c1', 'SHELL': '/bin/bash', 'SHLVL': '1', 'SSH_CLIENT': '10.232.60.18 32992 22', 'SSH_CONNECTION': '10.232.60.18 32992 192.168.10.149 22', 'SSH_TTY': '/dev/pts/3', 'SVKDIFF': 'kdiff3', 'TERM': 'xterm', 'TZ': 'US/Pacific', 'USER': 'johnc', '_': './manage.py', 'wsgi.errors': ', mode 'w' at 0xb7d550b0>, 'wsgi.file_wrapper': , 'wsgi.input': , 'wsgi.multiprocess': False, 'wsgi.multithread': True, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}> view_func * /usr/local/lib/site-python/django/contrib/admin/views/main.py in add_stage 247. if opts.has_field_type(models.FileField): 248. new_data.update(request.FILES) 249. 250. errors = manipulator.get_validation_errors(new_data) 251. manipulator.do_html2python(new_data) 252. 253. if not errors: 254. new_object = manipulator.save(new_data) ... 255. pk_value = new_object._get_pk_val() 256. LogEntry.objects.log_action(request.user.id, ContentType.objects.get_for_model(model).id, pk_value, str(new_object), ADDITION) 257. msg = _('The %(name)s "%(obj)s" was added successfully.') % {'name': opts.verbose_name, 'obj': new_object} 258. # Here, we distinguish between different save types by checking for 259. # the presence of keys in request.POST. 260. if request.POST.has_key("_continue"): ▶ Local vars Variable Value app_label 'campaign' errors {} form_url '' manipulator model model_name 'campaign' new_data object_id_override None opts post_url '../' post_url_continue '../%s/' request , POST:, COOKIES:{'sessionid': '967791df4d8938d301f662e23af9f842'}, META:{'CONTENT_LENGTH': '202', 'CONTENT_TYPE': 'application/x-www-form-urlencoded', 'DJANGO_SETTINGS_MODULE': 'pinz.settings', 'GATEWAY_INTERFACE': 'CGI/1.1', 'GTK2_RC_FILES': '/home/johnc/.gtkrc-2.0', 'HOME': '/home/johnc', 'HTTP_ACCEPT': 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CACHE_CONTROL': 'max-age=0', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'sessionid=967791df4d8938d301f662e23af9f842', 'HTTP_HOST': 'pinz.blueaudiotext.com:4321', 'HTTP_KEEP_ALIVE': '300', 'HTTP_REFERER': 'http://pinz.blueaudiotext.com:4321/admin/campaign/campaign/add/', 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.3) Gecko/20061201 Firefox/2.0.0.3 (Ubuntu-feisty)', 'LANG': 'en_US.UTF-8', 'LANGUAGE': 'en_US:en_GB:en', 'LOGNAME': 'johnc', 'LS_COLORS': 'no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.flac=01;35:*.mp3=01;35:*.mpc=01;35:*.ogg=01;35:*.wav=01;35:', 'MAIL': '/var/mail/johnc', 'OLDPWD': '/home/johnc/projects', 'PATH': '/home/johnc/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games:/home/johnc/bin', 'PATH_INFO': '/admin/campaign/campaign/add/', 'PS1': '\\n[ \\e[1;33m\\u@\\h | \\d | \\t \\e[1;37m]\\n> ', 'PWD': '/home/johnc/projects/pinz/src/trunk/pinz', 'QUERY_STRING': '', 'REMOTE_ADDR': '10.232.60.18', 'REMOTE_HOST': '', 'REQUEST_METHOD': 'POST', 'RUN_MAIN': 'true', 'SCRIPT_NAME': '', 'SERVER_NAME': 'pinz.blueaudiotext.com', 'SERVER_PORT': '4321', 'SERVER_PROTOCOL': 'HTTP/1.1', 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.5.1c1', 'SHELL': '/bin/bash', 'SHLVL': '1', 'SSH_CLIENT': '10.232.60.18 32992 22', 'SSH_CONNECTION': '10.232.60.18 32992 192.168.10.149 22', 'SSH_TTY': '/dev/pts/3', 'SVKDIFF': 'kdiff3', 'TERM': 'xterm', 'TZ': 'US/Pacific', 'USER': 'johnc', '_': './manage.py', 'wsgi.errors': ', mode 'w' at 0xb7d550b0>, 'wsgi.file_wrapper': , 'wsgi.input': , 'wsgi.multiprocess': False, 'wsgi.multithread': True, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}> show_delete False * /usr/local/lib/site-python/django/db/models/manipulators.py in save 171. if rel_new_data[related.opts.pk.name][0]: 172. try: 173. old_rel_obj = getattr(self.original_object, related.get_accessor_name()).get(**{'%s__exact' % related.opts.pk.name: rel_new_data[related.opts.pk.attname][0]}) 174. except ObjectDoesNotExist: 175. pass 176. 177. for f in related.opts.fields: 178. if f.core and not isinstance(f, FileField) and f.get_manipulator_new_data(rel_new_data, rel=True) in (None, ''): ... 179. all_cores_given = False 180. elif f.core and not isinstance(f, FileField) and f.get_manipulator_new_data(rel_new_data, rel=True) not in (None, ''): 181. all_cores_blank = False 182. # If this field isn't editable, give it the same value it had 183. # previously, according to the given ID. If the ID wasn't 184. # given, use a default value. FileFields are also a special ▶ Local vars Variable Value _ '0' all_cores_blank True all_cores_given True auto_now_add False child_follow {'campaign': False, 'description': True, 'id': True, 'length': True, 'vfi': False, 'vfo': False} expanded_data {'begin_date_date': datetime.date(2007, 5, 1), 'begin_date_time': datetime.time(0, 0), 'end_date_date': datetime.date(2007, 5, 1), 'end_date_time': datetime.time(0, 0), 'group': '2', 'group_id': '2', 'name': 'asdf', 'pin_credit_value': 3, 'pinblock': {'0': {'description': '', 'id': '', 'length': None}}} f new_data new_object obj_list [('0', {'description': '', 'id': '', 'length': None})] old_rel_obj None param 3L params {'campaign_id': 3L} rel_new_data {'description': '', 'id': '', 'length': None} related self * /usr/local/lib/site-python/django/db/models/fields/__init__.py in get_manipulator_new_data 282. 283. def get_manipulator_new_data(self, new_data, rel=False): 284. """ 285. Given the full new_data dictionary (from the manipulator), returns this 286. field's data. 287. """ 288. if rel: 289. return new_data.get(self.name, [self.get_default()])[0] ... 290. val = new_data.get(self.name, self.get_default()) 291. if not self.empty_strings_allowed and val == '' and self.null: 292. val = None 293. return val 294. 295. def get_choices(self, include_blank=True, blank_choice=BLANK_CHOICE_DASH): ▶ Local vars Variable Value new_data {'description': '', 'id': '', 'length': None} rel True self Traceback (most recent call last): File "/usr/local/lib/site-python/django/core/handlers/base.py" in get_response 77. response = callback(request, *callback_args, **callback_kwargs) File "/usr/local/lib/site-python/django/contrib/admin/views/decorators.py" in _checklogin 55. return view_func(request, *args, **kwargs) File "/usr/local/lib/site-python/django/views/decorators/cache.py" in _wrapped_view_func 39. response = view_func(request, *args, **kwargs) File "/usr/local/lib/site-python/django/contrib/admin/views/main.py" in add_stage 254. new_object = manipulator.save(new_data) File "/usr/local/lib/site-python/django/db/models/manipulators.py" in save 178. if f.core and not isinstance(f, FileField) and f.get_manipulator_new_data(rel_new_data, rel=True) in (None, ''): File "/usr/local/lib/site-python/django/db/models/fields/__init__.py" in get_manipulator_new_data 289. return new_data.get(self.name, [self.get_default()])[0] IndexError at /admin/campaign/campaign/add/ string index out of range