首页 > 解决方案 > 如何在mongoengine中找出字段的类型

问题描述

我一直在使用 blinker 库在 mongoengine 中编写信号。在将数据写入模型之前,我正在尝试对某些 fieldType 上的数据进行预处理。如何检查 mongoengine 中文档字段的类型。

@classmethod
def pre_save(cls, sender, document, **kwargs):
    """
    Pre Save signal
    """
    fields = document._fields
    # If field is of TextField pre-process the data

标签: djangopymongomongoengine

解决方案


这是正确_fields的,是类型的字典,{field_name: FieldClass}是内部使用的

以下内容应该可以帮助您入门:

@classmethod
def pre_save(cls, sender, document, **kwargs):
    """
    Pre Save signal
    """
    fields = document._fields
    for field_name, field_cls in fields.items():
        if isinstance(field_cls, TextField):
            new_attr_value = ...
            setattr(document, field_name, new_attr_value)

推荐阅读