Xea*_*lot 6 django django-models
我正在尝试使用我的自定义迭代器将查询集序列化为json.在模型上,我检测模型中的字段,并在需要时将它们插入到JSON字典中.
我无法确定如何使用延迟或仅查询集函数确定哪些字段已在模型中延迟.
有没有办法,以及如何找出哪些字段被推迟以及如何跳过它们?
以下是如何检查实际模型实例是否延迟:
from django.db.models.query_utils import DeferredAttribute
for field in model_istance._meta.concrete_fields:
if not isinstance(model_instance.__class__.__dict__.get(field.attname), DeferredAttribute):
# insert in json dict or whatever need to be done ....
Run Code Online (Sandbox Code Playgroud)
这样它就不会从db加载该字段.这个实现实际上来自django. https://github.com/django/django/blob/master/django/db/models/base.py#L415
| 归档时间: |
|
| 查看次数: |
1459 次 |
| 最近记录: |