125: Error when posting a diff from post-review script

PNC****@gmai***** (Google Code) (Is this you? Claim this profile.)
June 21, 2007
What steps will reproduce the problem?
1. Post a diff using the post-review script to revision 706

What is the expected output? What do you see instead?
The diff should upload.  Instead:

Warning at /api/json/reviewrequests/135/diff/new/
Field 'diffcompat' doesn't have a default value
Request Method: 	POST
Request URL: 
http://reviewboard.near-time.com:8080/api/json/reviewrequests/135/diff/new/
Exception Type: 	Warning
Exception Value: 	Field 'diffcompat' doesn't have a default value
Exception Location: 	/usr/lib/python2.4/warnings.py in warn_explicit, line 96
Traceback (innermost last)
Switch back to interactive view

    * /usr/lib/python2.4/site-packages/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 	
      <function inner at 0x899fe64>
      callback_args 	
      ()
      callback_kwargs 	
      {'review_request_id': '135'}
      debug 	
      <module 'django.views.debug' from
'/usr/lib/python2.4/site-packages/django/views/debug.py'>
      e 	
      <_mysql_exceptions.Warning instance at 0x899266c>
      exceptions 	
      <module 'django.core.exceptions' from
'/usr/lib/python2.4/site-packages/django/core/exceptions.py'>
      mail_admins 	
      <function mail_admins at 0x849e224>
      middleware_method 	
      <bound method XViewMiddleware.process_view of
<django.middleware.doc.XViewMiddleware object at 0xb68ba76c>>
      request 	
      <ModPythonRequest path:/api/json/reviewrequests/135/diff/new/,
GET:<MultiValueDict: {}>, POST:<MultiValueDict: {}>, COOKIES:{'sessionid':
'91cff3261fbe679fad5922315da9ca34'}, META:{'AUTH_TYPE': None,
'CONTENT_LENGTH': 0L, 'CONTENT_TYPE': None, 'GATEWAY_INTERFACE': 'CGI/1.1',
'HTTP_CONTENT_LENGTH': '609', 'HTTP_CONTENT_TYPE': 'multipart/form-data;
boundary=127.0.0.1.2612.14832.1182363518.733.9', 'HTTP_COOKIE':
'sessionid=91cff3261fbe679fad5922315da9ca34', 'HTTP_HOST':
'reviewboard.near-time.com:8080', 'HTTP_USER_AGENT': 'Python-urllib/2.1',
'PATH_INFO': '/json/reviewrequests/135/diff/new/', 'PATH_TRANSLATED': None,
'QUERY_STRING': None, 'REMOTE_ADDR': '66.129.74.165', 'REMOTE_HOST': None,
'REMOTE_IDENT': None, 'REMOTE_USER': None, 'REQUEST_METHOD': 'POST',
'SCRIPT_NAME': None, 'SERVER_NAME': 'reviewboard.near-time.com',
'SERVER_PORT': 0, 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE':
'mod_python'}>
      resolver 	
      <django.core.urlresolvers.RegexURLResolver object at 0x891eecc>
      response 	
      None
      self 	
      <django.core.handlers.modpython.ModPythonHandler object at 0x8ce292c>
      settings 	
      <django.conf.LazySettings object at 0x85a2e0c>
      urlconf 	
      'reviewboard.urls'
      urlresolvers 	
      <module 'django.core.urlresolvers' from
'/usr/lib/python2.4/site-packages/django/core/urlresolvers.py'>
    * /usr/share/reviewboard/reviews/json.py in _checklogin
        58. "is not in the list of known " +
        59. "repositories")
        60.
        61. @simple_decorator
        62. def json_login_required(view_func):
        63. def _checklogin(request, *args, **kwargs):
        64. if request.user.is_authenticated():
        65. return view_func(request, *args, **kwargs) ...
        66. else:
        67. return JsonResponseError(request, NOT_LOGGED_IN)
        68. return _checklogin
        69.
        70.
        71. def json_permission_required(perm):
      ▶ Local vars
      Variable 	Value
      args 	
      ()
      kwargs 	
      {'review_request_id': '135'}
      request 	
      <ModPythonRequest path:/api/json/reviewrequests/135/diff/new/,
GET:<MultiValueDict: {}>, POST:<MultiValueDict: {}>, COOKIES:{'sessionid':
'91cff3261fbe679fad5922315da9ca34'}, META:{'AUTH_TYPE': None,
'CONTENT_LENGTH': 0L, 'CONTENT_TYPE': None, 'GATEWAY_INTERFACE': 'CGI/1.1',
'HTTP_CONTENT_LENGTH': '609', 'HTTP_CONTENT_TYPE': 'multipart/form-data;
boundary=127.0.0.1.2612.14832.1182363518.733.9', 'HTTP_COOKIE':
'sessionid=91cff3261fbe679fad5922315da9ca34', 'HTTP_HOST':
'reviewboard.near-time.com:8080', 'HTTP_USER_AGENT': 'Python-urllib/2.1',
'PATH_INFO': '/json/reviewrequests/135/diff/new/', 'PATH_TRANSLATED': None,
'QUERY_STRING': None, 'REMOTE_ADDR': '66.129.74.165', 'REMOTE_HOST': None,
'REMOTE_IDENT': None, 'REMOTE_USER': None, 'REQUEST_METHOD': 'POST',
'SCRIPT_NAME': None, 'SERVER_NAME': 'reviewboard.near-time.com',
'SERVER_PORT': 0, 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE':
'mod_python'}>
      view_func 	
      <function inner at 0x899fe2c>
    * /usr/lib/python2.4/site-packages/django/views/decorators/http.py in inner
        19.
        20. Note that request methods should be in uppercase.
        21. """
        22. def decorator(func):
        23. def inner(request, *args, **kwargs):
        24. if request.method not in request_method_list:
        25. return HttpResponseNotAllowed(request_method_list)
        26. return func(request, *args, **kwargs) ...
        27. return inner
        28. return decorator
        29.
        30. require_GET = require_http_methods(["GET"])
        31. require_GET.__doc__ = "Decorator to require that a view only
accept the GET method."
  32.
      ▶ Local vars
      Variable 	Value
      args 	
      ()
      func 	
      <function new_diff at 0x899fdf4>
      kwargs 	
      {'review_request_id': '135'}
      request 	
      <ModPythonRequest path:/api/json/reviewrequests/135/diff/new/,
GET:<MultiValueDict: {}>, POST:<MultiValueDict: {}>, COOKIES:{'sessionid':
'91cff3261fbe679fad5922315da9ca34'}, META:{'AUTH_TYPE': None,
'CONTENT_LENGTH': 0L, 'CONTENT_TYPE': None, 'GATEWAY_INTERFACE': 'CGI/1.1',
'HTTP_CONTENT_LENGTH': '609', 'HTTP_CONTENT_TYPE': 'multipart/form-data;
boundary=127.0.0.1.2612.14832.1182363518.733.9', 'HTTP_COOKIE':
'sessionid=91cff3261fbe679fad5922315da9ca34', 'HTTP_HOST':
'reviewboard.near-time.com:8080', 'HTTP_USER_AGENT': 'Python-urllib/2.1',
'PATH_INFO': '/json/reviewrequests/135/diff/new/', 'PATH_TRANSLATED': None,
'QUERY_STRING': None, 'REMOTE_ADDR': '66.129.74.165', 'REMOTE_HOST': None,
'REMOTE_IDENT': None, 'REMOTE_USER': None, 'REQUEST_METHOD': 'POST',
'SCRIPT_NAME': None, 'SERVER_NAME': 'reviewboard.near-time.com',
'SERVER_PORT': 0, 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE':
'mod_python'}>
      request_method_list 	
      ['POST']
    * /usr/share/reviewboard/reviews/json.py in new_diff
       895. form_data.update({'repositoryid': review_request.repository.id})
       896. form = UploadDiffForm(form_data)
       897.
       898. if not form.is_valid():
       899. return JsonResponseError(request, INVALID_ATTRIBUTE)
       900.
       901. diffset = form.create(request.FILES['path'],
       902. review_request.diffset_history) ...
       903.
       904. try:
       905. draft = review_request.reviewrequestdraft_set.get()
       906.
       907. if draft.diffset and draft.diffset != diffset:
       908. draft.diffset.delete()
      ▶ Local vars
      Variable 	Value
      form 	
      <reviewboard.diffviewer.forms.UploadDiffForm object at 0x87e256c>
      form_data 	
      <MultiValueDict: {'path': [{'content':
'\n===================================================================\n---
near-time.net/trunk/db/migrate/1182363718_update_content_field.rb\t
(revision 11674)\n+++
near-time.net/trunk/db/migrate/1182363718_update_content_field.rb\t
(revision 11675)\n@@ -0,0 +1,8 @@\n+class UpdateContentField <
ActiveRecord::Migration\n+ def self.up\n+ change_column(:feeds, :content,
:text ,:limit => 16777215)\n+ end\n+\n+\tdef self.down\n+\tend\n+end\n\\ No
newline at end of file\n\n', 'content-type': None, 'filename': 'diff'}],
'repositoryid': [1L]}>
      request 	
      <ModPythonRequest path:/api/json/reviewrequests/135/diff/new/,
GET:<MultiValueDict: {}>, POST:<MultiValueDict: {}>, COOKIES:{'sessionid':
'91cff3261fbe679fad5922315da9ca34'}, META:{'AUTH_TYPE': None,
'CONTENT_LENGTH': 0L, 'CONTENT_TYPE': None, 'GATEWAY_INTERFACE': 'CGI/1.1',
'HTTP_CONTENT_LENGTH': '609', 'HTTP_CONTENT_TYPE': 'multipart/form-data;
boundary=127.0.0.1.2612.14832.1182363518.733.9', 'HTTP_COOKIE':
'sessionid=91cff3261fbe679fad5922315da9ca34', 'HTTP_HOST':
'reviewboard.near-time.com:8080', 'HTTP_USER_AGENT': 'Python-urllib/2.1',
'PATH_INFO': '/json/reviewrequests/135/diff/new/', 'PATH_TRANSLATED': None,
'QUERY_STRING': None, 'REMOTE_ADDR': '66.129.74.165', 'REMOTE_HOST': None,
'REMOTE_IDENT': None, 'REMOTE_USER': None, 'REQUEST_METHOD': 'POST',
'SCRIPT_NAME': None, 'SERVER_NAME': 'reviewboard.near-time.com',
'SERVER_PORT': 0, 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE':
'mod_python'}>
      review_request 	
      <ReviewRequest: >
      review_request_id 	
      '135'
    * /usr/share/reviewboard/diffviewer/forms.py in create
        52. revision = PRE_CREATION
        53.
        54. f.origFile = filename
        55. f.origInfo = revision
        56.
        57. diffset = DiffSet(name=file["filename"], revision=0,
        58. history=diffset_history,
        59. diffcompat=DEFAULT_DIFF_COMPAT_VERSION) ...
        60. diffset.repository = repository
        61. diffset.save()
        62.
        63. for f in files:
        64. filediff = FileDiff(diffset=diffset,
        65. source_file=f.origFile,
      ▶ Local vars
      Variable 	Value
      basedir 	
      ''
      diffset 	
      <DiffSet: diff r0>
      diffset_history 	
      <DiffSetHistory: Diff Set History (1 revisions)>
      f 	
      <reviewboard.diffviewer.parser.File instance at 0x8992f2c>
      f2 	
      'near-time.net/trunk/db/migrate/1182363718_update_content_field.rb'
      file 	
      {'content':
'\n===================================================================\n---
near-time.net/trunk/db/migrate/1182363718_update_content_field.rb\t
(revision 11674)\n+++
near-time.net/trunk/db/migrate/1182363718_update_content_field.rb\t
(revision 11675)\n@@ -0,0 +1,8 @@\n+class UpdateContentField <
ActiveRecord::Migration\n+ def self.up\n+ change_column(:feeds, :content,
:text ,:limit => 16777215)\n+ end\n+\n+\tdef self.down\n+\tend\n+end\n\\ No
newline at end of file\n\n', 'content-type': None, 'filename': 'diff'}
      filename 	
      'near-time.net/trunk/db/migrate/1182363718_update_content_field.rb'
      files 	
      [<reviewboard.diffviewer.parser.File instance at 0x8992f2c>]
      repository 	
      <Repository: Near-Time Subversion>
      revision 	
      <Revision: PRE-CREATION>
      self 	
      <reviewboard.diffviewer.forms.UploadDiffForm object at 0x87e256c>
      tool 	
      <reviewboard.scmtools.svn.SVNTool instance at 0x8992c8c>
    * /usr/lib/python2.4/site-packages/django/db/models/base.py in save
       236. # TODO: This assumes the database supports subqueries.
       237. placeholders.append('(SELECT COUNT(*) FROM %s WHERE %s = %%s)' % \
       238. (backend.quote_name(self._meta.db_table),
backend.quote_name(self._meta.order_with_respect_to.column)))
       239. db_values.append(getattr(self,
self._meta.order_with_respect_to.attname))
       240. if db_values:
       241. cursor.execute("INSERT INTO %s (%s) VALUES (%s)" % \
       242. (backend.quote_name(self._meta.db_table), ','.join(field_names),
       243. ','.join(placeholders)), db_values) ...
       244. else:
       245. # Create a new record with defaults for everything.
       246. cursor.execute("INSERT INTO %s (%s) VALUES (%s)" %
       247. (backend.quote_name(self._meta.db_table),
       248. backend.quote_name(self._meta.pk.column),
       249. backend.get_pk_default_value()))
      ▶ Local vars
      Variable 	Value
      cursor 	
      <django.db.backends.util.CursorDebugWrapper object at 0x8992fcc>
      db_values 	
      ['diff', 0, '2007-06-20 11:22:48', 135L, 1L]
      f 	
      <django.db.models.fields.related.ForeignKey object at 0xb67978ec>
      field_names 	
      ['`name`', '`revision`', '`timestamp`', '`history_id`',
'`repository_id`']
      non_pks 	
      [<django.db.models.fields.CharField object at 0xb679770c>,
<django.db.models.fields.IntegerField object at 0xb679782c>,
<django.db.models.fields.DateTimeField object at 0xb679786c>,
<django.db.models.fields.related.ForeignKey object at 0xb67978cc>,
<django.db.models.fields.related.ForeignKey object at 0xb67978ec>]
      pk_set 	
      False
      pk_val 	
      None
      placeholders 	
      ['%s', '%s', '%s', '%s', '%s']
      record_exists 	
      True
      self 	
      <DiffSet: diff r0>
    * /usr/lib/python2.4/site-packages/django/db/backends/util.py in execute
        10. def __init__(self, cursor, db):
        11. self.cursor = cursor
        12. self.db = db
        13.
        14. def execute(self, sql, params=()):
        15. start = time()
        16. try:
        17. return self.cursor.execute(sql, params) ...
        18. finally:
        19. stop = time()
        20. # If params was a list, convert it to a tuple, because string
        21. # formatting with '%' only works with tuples or dicts.
        22. if not isinstance(params, (tuple, dict)):
        23. params = tuple(params)
      ▶ Local vars
      Variable 	Value
      params 	
      ('diff', 0, '2007-06-20 11:22:48', 135L, 1L)
      self 	
      <django.db.backends.util.CursorDebugWrapper object at 0x8992fcc>
      sql 	
      'INSERT INTO `diffviewer_diffset`
(`name`,`revision`,`timestamp`,`history_id`,`repository_id`) VALUES
(%s,%s,%s,%s,%s)'
      start 	
      1182363768.6921649
      stop 	
      1182363768.6925261
    * /usr/lib/python2.4/site-packages/MySQLdb/cursors.py in execute
       158. self.errorhandler(self, TypeError, m)
       159. except:
       160. exc, value, tb = exc_info()
       161. del tb
       162. self.messages.append((exc, value))
       163. self.errorhandler(self, exc, value)
       164. self._executed = query
       165. self._warning_check() ...
       166. return r
       167.
       168. def executemany(self, query, args):
       169.
       170. """Execute a multi-row query.
 171.
      ▶ Local vars
      Variable 	Value
      ListType 	
      <type 'list'>
      TupleType 	
      <type 'tuple'>
      args 	
      ['diff', 0, '2007-06-20 11:22:48', 135L, 1L]
      charset 	
      'utf8'
      db 	
      <weakproxy at 0x891f1e4 to Connection at 0x8b873fc>
      exc_info 	
      <built-in function exc_info>
      query 	
      "INSERT INTO `diffviewer_diffset`
(`name`,`revision`,`timestamp`,`history_id`,`repository_id`) VALUES
('diff',0,'2007-06-20 11:22:48',135,1)"
      r 	
      1L
      self 	
      <MySQLdb.cursors.Cursor object at 0x898ac0c>
    * /usr/lib/python2.4/site-packages/MySQLdb/cursors.py in _warning_check
        73. warnings = self._get_db().show_warnings()
        74. if warnings:
        75. # This is done in two loops in case
        76. # Warnings are set to raise exceptions.
        77. for w in warnings:
        78. self.messages.append((self.Warning, w))
        79. for w in warnings:
        80. warn(w[-1], self.Warning, 3) ...
        81. elif self._info:
        82. self.messages.append((self.Warning, self._info))
        83. warn(self._info, self.Warning, 3)
        84.
        85. def nextset(self):
        86. """Advance to the next result set.
      ▶ Local vars
      Variable 	Value
      self 	
      <MySQLdb.cursors.Cursor object at 0x898ac0c>
      w 	
      ('Warning', 1364L, "Field 'diffcompat' doesn't have a default value")
      warn 	
      <function warn at 0x841679c>
      warnings 	
      (('Warning', 1364L, "Field 'diffcompat' doesn't have a default value"),)
    * /usr/lib/python2.4/warnings.py in warn
        54. filename = sys.argv[0]
        55. except AttributeError:
        56. # embedded interpreters don't have sys.argv, see bug #839151
        57. filename = '__main__'
        58. if not filename:
        59. filename = module
        60. registry = globals.setdefault("__warningregistry__", {})
        61. warn_explicit(message, category, filename, lineno, module,
registry) ...
        62.
        63. def warn_explicit(message, category, filename, lineno,
        64. module=None, registry=None):
        65. if module is None:
        66. module = filename or "<unknown>"
        67. if module[-3:].lower() == ".py":
      ▶ Local vars
      Variable 	Value
      caller 	
      <frame object at 0x858219c>
      category 	
      <class _mysql_exceptions.Warning at 0x84c868c>
      filename 	
      '/usr/lib/python2.4/site-packages/django/db/backends/util.py'
      fnl 	
      '/usr/lib/python2.4/site-packages/django/db/backends/util.py'
      globals 	
      {'CursorDebugWrapper': <class
'django.db.backends.util.CursorDebugWrapper'>, '__builtins__':
{'ArithmeticError': <class exceptions.ArithmeticError at 0x818898c>,
'AssertionError': <class exceptions.AssertionError at 0x818889c>,
'AttributeError': <class exceptions.AttributeError at 0x818874c>,
'DeprecationWarning': <class exceptions.DeprecationWarning at 0x8188ecc>,
'EOFError': <class exceptions.EOFError at 0x818853c>, 'Ellipsis': Ellipsis,
'EnvironmentError': <class exceptions.EnvironmentError at 0x818841c>,
'Exception': <class exceptions.Exception at 0x818826c>, 'False': False,
'FloatingPointError': <class exceptions.FloatingPointError at 0x8188aac>,
'FutureWarning': <class exceptions.FutureWarning at 0x819e02c>, 'IOError':
<class exceptions.IOError at 0x818847c>, 'ImportError': <class
exceptions.ImportError at 0x81883ec>, 'IndentationError': <class
exceptions.IndentationError at 0x818880c>, 'IndexError': <class
exceptions.IndexError at 0x81888fc>, 'KeyError': <class exceptions.KeyError
at 0x818895c>, 'KeyboardInterrupt': <class exceptions.KeyboardInterrupt at
0x818838c>, 'LookupError': <class exceptions.LookupError at 0x81888cc>,
'MemoryError': <class exceptions.MemoryError at 0x8188e0c>, 'NameError':
<class exceptions.NameError at 0x818865c>, 'None': None, 'NotImplemented':
NotImplemented, 'NotImplementedError': <class
exceptions.NotImplementedError at 0x81885cc>, 'OSError': <class
exceptions.OSError at 0x81884dc>, 'OverflowError': <class
exceptions.OverflowError at 0x81889bc>, 'OverflowWarning': <class
exceptions.OverflowWarning at 0x8188f8c>, 'PendingDeprecationWarning':
<class exceptions.PendingDeprecationWarning at 0x8188f2c>,
'ReferenceError': <class exceptions.ReferenceError at 0x8188dac>,
'RuntimeError': <class exceptions.RuntimeError at 0x818856c>,
'RuntimeWarning': <class exceptions.RuntimeWarning at 0x8188fbc>,
'StandardError': <class exceptions.StandardError at 0x81882cc>,
'StopIteration': <class exceptions.StopIteration at 0x818829c>,
'SyntaxError': <class exceptions.SyntaxError at 0x818877c>,
'SyntaxWarning': <class exceptions.SyntaxWarning at 0x8188f5c>,
'SystemError': <class exceptions.SystemError at 0x8188ddc>, 'SystemExit':
<class exceptions.SystemExit at 0x818832c>, 'TabError': <class
exceptions.TabError at 0x818883c>, 'True': True, 'TypeError': <class
exceptions.TypeError at 0x81882fc>, 'UnboundLocalError': <class
exceptions.UnboundLocalError at 0x81886bc>, 'UnicodeDecodeError': <class
exceptions.UnicodeDecodeError at 0x8188cbc>, 'UnicodeEncodeError': <class
exceptions.UnicodeEncodeError at 0x8188bfc>, 'UnicodeError': <class
exceptions.UnicodeError at 0x8188b6c>, 'UnicodeTranslateError': <class
exceptions.UnicodeTranslateError at 0x8188d4c>, 'UserWarning': <class
exceptions.UserWarning at 0x8188e6c>, 'ValueError': <class
exceptions.ValueError at 0x8188b0c>, 'Warning': <class exceptions.Warning
at 0x8188e3c>, 'ZeroDivisionError': <class exceptions.ZeroDivisionError at
0x8188a1c>, '_': <function first_time_gettext at 0x85b087c>, '__debug__':
True, '__doc__': "Built-in functions, exceptions, and other
objects.\n\nNoteworthy: None is the `nil' object; Ellipsis represents `...'
in slices.", '__import__': <built-in function __import__>, '__name__':
'__builtin__', 'abs': <built-in function abs>, 'apply': <built-in function
apply>, 'basestring': <type 'basestring'>, 'bool': <type 'bool'>, 'buffer':
<type 'buffer'>, 'callable': <built-in function callable>, 'chr': <built-in
function chr>, 'classmethod': <type 'classmethod'>, 'cmp': <built-in
function cmp>, 'coerce': <built-in function coerce>, 'compile': <built-in
function compile>, 'complex': <type 'complex'>, 'copyright': Copyright (c)
2001-2006 Python Software Foundation. All Rights Reserved. Copyright (c)
2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation
for National Research Initiatives. All Rights Reserved. Copyright (c)
1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved.,
'credits': Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of
thousands for supporting Python development. See www.python.org for more
information., 'delattr': <built-in function delattr>, 'dict': <type
'dict'>, 'dir': <built-in function dir>, 'divmod': <built-in function
divmod>, 'enumerate': <type 'enumerate'>, 'eval': <built-in function eval>,
'execfile': <built-in function execfile>, 'exit': 'Use Ctrl-D (i.e. EOF) to
exit.', 'file': <type 'file'>, 'filter': <built-in function filter>,
'float': <type 'float'>, 'frozenset': <type 'frozenset'>, 'getattr':
<built-in function getattr>, 'globals': <built-in function globals>,
'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>,
'help': Type help() for interactive help, or help(object) for help about
object., 'hex': <built-in function hex>, 'id': <built-in function id>,
'input': <built-in function input>, 'int': <type 'int'>, 'intern':
<built-in function intern>, 'isinstance': <built-in function isinstance>,
'issubclass': <built-in function issubclass>, 'iter': <built-in function
iter>, 'len': <built-in function len>, 'license': Type license() to see the
full license text, 'list': <type 'list'>, 'locals': <built-in function
locals>, 'long': <type 'long'>, 'map': <built-in function map>, 'max':
<built-in function max>, 'min': <built-in function min>, 'object': <type
'object'>, 'oct': <built-in function oct>, 'open': <type 'file'>, 'ord':
<built-in function ord>, 'pow': <built-in function pow>, 'property': <type
'property'>, 'quit': 'Use Ctrl-D (i.e. EOF) to exit.', 'range': <built-in
function range>, 'raw_input': <built-in function raw_input>, 'reduce':
<built-in function reduce>, 'reload': <built-in function reload>, 'repr':
<built-in function repr>, 'reversed': <type 'reversed'>, 'round': <built-in
function round>, 'set': <type 'set'>, 'setattr': <built-in function
setattr>, 'slice': <type 'slice'>, 'sorted': <built-in function sorted>,
'staticmethod': <type 'staticmethod'>, 'str': <type 'str'>, 'sum':
<built-in function sum>, 'super': <type 'super'>, 'tuple': <type 'tuple'>,
'type': <type 'type'>, 'unichr': <built-in function unichr>, 'unicode':
<type 'unicode'>, 'vars': <built-in function vars>, 'xrange': <type
'xrange'>, 'zip': <built-in function zip>}, '__doc__': None, '__file__':
'/usr/lib/python2.4/site-packages/django/db/backends/util.py', '__name__':
'django.db.backends.util', '__warningregistry__': {}, '_dict_helper':
<function _dict_helper at 0x84e0dbc>, 'datetime': <module 'datetime' from
'/usr/lib/python2.4/lib-dynload/datetime.so'>, 'decimal': <module 'decimal'
from '/usr/lib/python2.4/decimal.pyc'>, 'dictfetchall': <function
dictfetchall at 0x84e0e64>, 'dictfetchmany': <function dictfetchmany at
0x84e0e2c>, 'dictfetchone': <function dictfetchone at 0x84e0df4>,
'rev_typecast_boolean': <function rev_typecast_boolean at 0x84e0d4c>,
'rev_typecast_decimal': <function rev_typecast_decimal at 0x84e0d84>,
'time': <built-in function time>, 'typecast_boolean': <function
typecast_boolean at 0x84e0cdc>, 'typecast_date': <function typecast_date at
0x849eaac>, 'typecast_decimal': <function typecast_decimal at 0x84e0d14>,
'typecast_time': <function typecast_time at 0x84e0c6c>,
'typecast_timestamp': <function typecast_timestamp at 0x84e0ca4>}
      lineno 	
      17
      message 	
      "Field 'diffcompat' doesn't have a default value"
      module 	
      'django.db.backends.util'
      registry 	
      {}
      stacklevel 	
      3
    * /usr/lib/python2.4/warnings.py in warn_explicit
        89. else:
        90. action = defaultaction
        91. # Early exit actions
        92. if action == "ignore":
        93. registry[key] = 1
        94. return
        95. if action == "error":
        96. raise message ...
        97. # Other actions
        98. if action == "once":
        99. registry[key] = 1
       100. oncekey = (text, category)
       101. if onceregistry.get(oncekey):
       102. return
chipx86
#1 chipx86
As we discussed over IM, it looks like the server just wasn't restarted. Or perhaps
the database wasn't migrated. Doesn't look to be a bug though.
  • +Fixed