django模型字段检查实例

时间:2019-01-04 06:35:45

标签: python django django-models

我有类似的模型

class MyModel(models.Model):
    name = models.CharField()
    updated_on = models.DateTimeField()

现在我正在像这样查询

m = MyModel.objets.get(id=2)

在这里我要检查字段是否属于某种类型,我想做一些类似的事情

from django.db.models import DateTimeField

if isinstance(m.updated_on, DateTimeField):
    // do something

但是在这里我变得虚假了。 有什么解决方法可以实现此目的?

2 个答案:

答案 0 :(得分:2)

要获取字段类型: Model._meta.get_field("fieldname")

您可以使用此:

from django.db.models import DateTimeField if isinstance(MyModel._meta.get_field('updated_on'),DateTimeField): ...

答案 1 :(得分:0)

我不知道为什么该字段中的数据将不同于您定义的数据。

但是您的问题是 field 的类型与 data 的类型不同,而后者正是您所关心的。 DateTimeField中的数据类型为datetime.datetime

所以:

from datetime import datetime
if isinstance(m.updated_on, datetime):
    ...