@@ -24,7 +24,8 @@ def __init__(self, **kwargs):
2424 help_text = kwargs .get ('help_text' , _ ('record revision number' ))
2525
2626 super (VersionField , self ).__init__ (verbose_name , name , editable = True ,
27- help_text = help_text , null = False , blank = False , default = 1 ,
27+ help_text = help_text , null = False , blank = False ,
28+ default = 0 ,
2829 db_tablespace = db_tablespace , db_column = db_column )
2930
3031 def get_default (self ):
@@ -61,7 +62,7 @@ def get_internal_type(self):
6162 return "BigIntegerField"
6263
6364 def pre_save (self , model_instance , add ):
64- old_value = getattr (model_instance , self .attname )
65+ old_value = getattr (model_instance , self .attname ) or 0
6566 value = max (old_value + 1 , (int (time .time () * 1000000 ) - OFFSET ))
6667 setattr (model_instance , self .attname , value )
6768 return value
@@ -78,7 +79,7 @@ def get_internal_type(self):
7879 return "BigIntegerField"
7980
8081 def pre_save (self , model_instance , add ):
81- value = getattr (model_instance , self .attname ) + 1
82+ value = ( getattr (model_instance , self .attname ) or 0 ) + 1
8283 setattr (model_instance , self .attname , value )
8384 return value
8485
@@ -127,6 +128,17 @@ def pre_save(self, model_instance, add):
127128# return None
128129# return time.strftime('%Y%m%d%H%M%S', value.timetuple())
129130
131+ try :
132+ from django_any import any_field
133+ import random
134+ from django .db .models .fields import Field , BigIntegerField
135+ any_field .register (IntegerVersionField ,
136+ lambda x , ** kwargs : random .randint (1 , BigIntegerField .MAX_BIGINT ))
137+ any_field .register (AutoIncVersionField ,
138+ lambda x , ** kwargs : random .randint (1 , BigIntegerField .MAX_BIGINT ))
139+
140+ except ImportError as e :
141+ pass
130142
131143try :
132144 from south .modelsinspector import add_introspection_rules
0 commit comments