Как проверить тип полей модели?

У меня есть класс API, который мы используем в нашем приложении и который позволяет нам упростить HTTP-запросы и создавать новые конечные точки API, просто определяя, какую модель использовать, без необходимости писать пользовательский обработчик для каждого запроса модели.

Однако я хочу включить поиск по подстановочным знакам в запросы, поэтому я хочу иметь возможность проверить, является ли поле модели текстовым полем, и если да, то проверить данное поле на наличие подстановочных знаков.

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

Для примера псевдокода, что я примерно хочу сделать:

model = ModelWeAreUsing
for field in search_terms:
  if model[field] is TextField:
    doTextField()
  else:
    doGenericField()

Используя ваш псевдокод, вы можете получить доступ к мета модели, получить поле по имени и проверить его класс:

if model._meta.get_field(field).__class__ is TextField:
    ...

Используйте стандартный python type()

from django.db.models.fields import TextField
type(model._meta.get_field('fieldname')) is TextField
Вернуться на верх