Django 检索支持模型字段的类的名称
我正在处理一些django代码中的一些边缘情况,并且遇到了一个只有在涉及特定字段时才会遇到的问题 我希望能够检测模型用于字段的类,并根据结果将其放入备用逻辑 我尝试在字段实例上使用Django 检索支持模型字段的类的名称,django,django-1.3,Django,Django 1.3,我正在处理一些django代码中的一些边缘情况,并且遇到了一个只有在涉及特定字段时才会遇到的问题 我希望能够检测模型用于字段的类,并根据结果将其放入备用逻辑 我尝试在字段实例上使用get_internal_type(),但它只返回“BooleanField”,而不是预期的“ModifiedField” 自定义字段类型: class ModifiedField(models.BooleanField): def __init__(self, *args, **kwargs):
get_internal_type()
,但它只返回“BooleanField”
,而不是预期的“ModifiedField”
自定义字段类型:
class ModifiedField(models.BooleanField):
def __init__(self, *args, **kwargs):
kwargs['editable'] = False
models.BooleanField.__init__(self, *args, **kwargs)
def pre_save(self, model_instance, add):
value = getattr(model_instance, self.attname)
if add:
return True
elif value == 2:
return False
else:
return True
型号:
class TemplateItem(models.Model):
uuid = UUIDField(primary_key=True)
name = models.CharField(null=False, blank=True, max_length=255)
image = models.ImageField(_('Image'), upload_to=_template_image_upload_path,
storage=item_fs, null=True, blank=True)
is_modified = ModifiedField()
您是否尝试过类\u name\uuo
实际上op是在寻找一个模型的字段类,而不是模型本身的类。谢谢你,我现在觉得有点愚蠢,因为我不记得我可以做这个@Brunodesshuilliers是对的,我确实想要field类,但是如果你像我一样有一个类的实例,那么它只是调用
实例的一个例子
g = TemplateItem.objects.get(id=1)
g.__class__.__name__
fld_cls = type(model_instance._meta.get_field(fieldname))