Passed
Pull Request — master (#2)
by Emil
11:11
created

LocalizedModel.__init__()   B

Complexity

Conditions 5

Size

Total Lines 22

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 11
CRAP Score 5

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 5
c 2
b 0
f 0
dl 0
loc 22
rs 8.3411
ccs 11
cts 11
cp 1
crap 5
1 1
from django.db import models
2
3 1
from .fields import LocalizedField, LocalizedValue
4
5
6 1
class LocalizedModel(models.Model):
7
    """A model that contains localized fields."""
8
9 1
    class Meta:
10 1
        abstract = True
11
12 1
    def __init__(self, *args, **kwargs):
13
        """Initializes a new instance of :see:LocalizedModel.
14
15
        Here we set all the fields that are of :see:LocalizedField
16
        to an instance of :see:LocalizedValue in case they are none
17
        so that the user doesn't explicitely have to do so."""
18
19 1
        super(LocalizedModel, self).__init__(*args, **kwargs)
20
21 1
        for field in self._meta.get_fields():
22 1
            if not isinstance(field, LocalizedField):
23 1
                continue
24
25 1
            value = getattr(self, field.name, None)
26
27 1
            if not isinstance(value, LocalizedValue):
28 1
                if isinstance(value, dict):
29 1
                    value = LocalizedValue(value)
30
                else:
31 1
                    value = LocalizedValue()
32
33
            setattr(self, field.name, value)
34