আপডেট 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