equal
deleted
inserted
replaced
5 from https://gist.github.com/gsakkis/601977 |
5 from https://gist.github.com/gsakkis/601977 |
6 to correct https://code.djangoproject.com/ticket/10227 |
6 to correct https://code.djangoproject.com/ticket/10227 |
7 |
7 |
8 @author: ymh |
8 @author: ymh |
9 ''' |
9 ''' |
|
10 from django.core.exceptions import ObjectDoesNotExist |
10 from django.db import models |
11 from django.db import models |
11 from django.db.models import fields as django_fields |
12 from django.db.models import fields as django_fields |
12 from django.core.exceptions import ObjectDoesNotExist |
13 from south.modelsinspector import add_introspection_rules |
13 |
14 |
14 |
15 |
15 class OneToOneField(models.OneToOneField): |
16 class OneToOneField(models.OneToOneField): |
16 def __init__(self, to, **kwargs): |
17 def __init__(self, to, **kwargs): |
17 self.related_default = kwargs.pop('related_default', None) |
18 self.related_default = kwargs.pop('related_default', None) |
37 value = self.default(instance) |
38 value = self.default(instance) |
38 setattr(instance, self.cache_name, value) |
39 setattr(instance, self.cache_name, value) |
39 if value is not None: |
40 if value is not None: |
40 setattr(value, self.related.field.get_cache_name(), instance) |
41 setattr(value, self.related.field.get_cache_name(), instance) |
41 return value |
42 return value |
|
43 |
|
44 add_introspection_rules([ |
|
45 ( |
|
46 [OneToOneField], |
|
47 [], # Positional arguments (not used) |
|
48 { # Keyword argument |
|
49 "related_default": ["related_default", {"default": None}], |
|
50 }, |
|
51 ), |
|
52 ], ["^hdalab\.fields\.OneToOneField"]) |