Экземпляр проверки поля модели Django - PullRequest
0 голосов
/ 04 января 2019

У меня есть такие модели, как

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 голосов
/ 04 января 2019

Чтобы получить тип поля: Model._meta.get_field("fieldname")

Вы можете использовать это:

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

0 голосов
/ 04 января 2019

Я не знаю, почему данные в поле могут отличаться от того, что вы определили как.

Но ваша проблема в том, что тип поля нетакой же, как тип данных , и вам важны последние.Тип данных в DateTimeField: datetime.datetime.

Итак:

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