获取 Django 模型属性的类型
Get type of django model attribute
我正在为 django 编写一些模式测试,使用 unittest
框架的 django 包装器。
我想检查字段是否始终为 DateTimeField
,而不是 DateField
。所以我尝试了以下操作:
class TestSuite(TestCase):
def test_for_correct_datetype(self):
self.assertTrue(isinstance(Obj.time, models.DateTimeField))
因为之前:
class Obj(models.Model):
....
time = models.DateTimeField()
注意:有几个答案说要使用 getattr
,但它对我也不起作用。
如何使 self.assertTrue()
正常工作?
您可以使用模型 _meta 中的 get_field
方法 API:
from django.db import models
class TestSuite(TestCase):
def test_for_correct_datetype(self):
self.assertTrue(isinstance(Obj._meta.get_field('time'), models.DateTimeField))
我正在为 django 编写一些模式测试,使用 unittest
框架的 django 包装器。
我想检查字段是否始终为 DateTimeField
,而不是 DateField
。所以我尝试了以下操作:
class TestSuite(TestCase):
def test_for_correct_datetype(self):
self.assertTrue(isinstance(Obj.time, models.DateTimeField))
因为之前:
class Obj(models.Model):
....
time = models.DateTimeField()
注意:有几个答案说要使用 getattr
,但它对我也不起作用。
如何使 self.assertTrue()
正常工作?
您可以使用模型 _meta 中的 get_field
方法 API:
from django.db import models
class TestSuite(TestCase):
def test_for_correct_datetype(self):
self.assertTrue(isinstance(Obj._meta.get_field('time'), models.DateTimeField))