PEMBARUAN 15.3.2017:
Saya telah membuka masalah Django tentang hal ini dan tampaknya akan diterima di sini:
https://code.djangoproject.com/ticket/27825
Pengalaman saya adalah bahwa ketika menggunakan kelas Constructor( ORM) dengan referensi dengan Django 1.10.5mungkin ada beberapa ketidakkonsistenan dalam data (yaitu atribut dari objek yang dibuat mungkin mendapatkan tipe data input daripada tipe cast dari properti objek ORM) contoh :
models
class Payment(models.Model):
amount_cash = models.DecimalField()
some_test.py - object.create
Class SomeTestCase:
def generate_orm_obj(self, _constructor, base_data=None, modifiers=None):
objs = []
if not base_data:
base_data = {'amount_case': 123.00}
for modifier in modifiers:
actual_data = deepcopy(base_data)
actual_data.update(modifier)
# Hacky fix,
_obj = _constructor.objects.create(**actual_data)
print(type(_obj.amount_cash)) # Decimal
assert created
objs.append(_obj)
return objs
some_test.py - Constructor()
Class SomeTestCase:
def generate_orm_obj(self, _constructor, base_data=None, modifiers=None):
objs = []
if not base_data:
base_data = {'amount_case': 123.00}
for modifier in modifiers:
actual_data = deepcopy(base_data)
actual_data.update(modifier)
# Hacky fix,
_obj = _constructor(**actual_data)
print(type(_obj.amount_cash)) # Float
assert created
objs.append(_obj)
return objs