获取django模型属性的类型

时间:2018-04-26 14:35:05

标签: python django django-unittest

我正在使用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()工作?

1 个答案:

答案 0 :(得分:1)

您可以使用Model _meta API中的get_field方法:

from django.db import models

class TestSuite(TestCase):
    def test_for_correct_datetype(self):
        self.assertTrue(isinstance(Obj._meta.get_field('time'), models.DateTimeField))