আপডেট 15.3.2017:
আমি এটি নিয়ে একটি জ্যাঙ্গো-ইস্যু খুলেছি এবং এটি প্রাথমিকভাবে এখানে গ্রহণযোগ্য বলে মনে হচ্ছে:
https://code.djangoproject.com/ticket/27825
আমার অভিজ্ঞতাটি হ'ল জ্যাঙ্গোর সাথে রেফারেন্স দিয়ে Constructor( ORM) ক্লাসটি ব্যবহার করার 1.10.5সময় ডেটাতে কিছুটা অসঙ্গতি থাকতে পারে (যেমন তৈরি হওয়া অবজেক্টের বৈশিষ্ট্যগুলি ওআরএম অবজেক্ট প্রোপারটির কাস্টেড টাইপের পরিবর্তে ইনপুট ডেটার ধরণ পেতে পারে) উদাহরণ :
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