Получить тип атрибута модели django
Я пишу несколько тестов схемы для django, используя оболочку django unittest
фреймворк.
Я хочу проверить, что поле всегда будет 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 ответ
Решение
Ты можешь использовать get_field
метод из API Model _meta:
from django.db import models
class TestSuite(TestCase):
def test_for_correct_datetype(self):
self.assertTrue(isinstance(Obj._meta.get_field('time'), models.DateTimeField))