Tôi là người mới bắt đầu ở Django. Và tôi cần phải chuyển đổi mô hình dụ trong từ điển tương tự như Model.objects.values làm, với các lĩnh vực quan hệ. Vì vậy, tôi viết một hàm nhỏ để làm điều này:django chuyển đổi mô hình dụ thành dict
def _get_proper(instance, field):
if field.__contains__("__"):
inst_name = field.split("__")[0]
new_inst = getattr(instance, inst_name)
next_field = "__".join(field.split("__")[1:])
value = _get_proper(new_inst, next_field)
else:
value = getattr(instance, field)
return value
def instance_to_dict(instance, fields):
return {key: _get_proper(instance, key) for key in fields}
Vì vậy, tôi có thể sử dụng nó theo cách như vậy:
user_obj = User.objects.select_related(...).get(...)
print instance_to_dict(user_obj, ["name", "city__name", "city_id"])
bạn có thể đề xuất các giải pháp tốt hơn? Cảm ơn! P.S. Xin lỗi vì tiếng Anh của tôi.
trùng lặp có thể xảy ra của [Chuyển đổi Django mẫu đối tượng để dict với tất cả các lĩnh vực còn nguyên vẹn] (http://stackoverflow.com/questions/21925671/convert-django-model-object-to -dict-with-all-of-the-fields-nguyên vẹn) – Zags