Вы можете использовать регулярное выражение в Django ORM. Ссылка на документацию - https://docs.djangoproject.com/en/dev/ref/models/querysets/#iregex
Пример:
Entry.objects.get(title__regex=r'^(An?|The) +')
SQL эквиваленты:
SELECT ... WHERE title REGEXP BINARY '^(An?|The) +'; -- MySQL
SELECT ... WHERE REGEXP_LIKE(title, '^(an?|the) +', 'c'); -- Oracle
SELECT ... WHERE title ~ '^(An?|The) +'; -- PostgreSQL
SELECT ... WHERE title REGEXP '^(An?|The) +'; -- SQLite
Использование необработанных строк (например, r'foo»вместо 'Foo') для прохождения в регулярном выражении рекомендуется использовать синтаксис.
EDIT: Вы можете добавить регулярное выражение, как:
Entry.objects.get(title__regex=r'^[[:upper:]]+$') #not tested
О, ничего себе. Я не знал о правильности регулярного выражения, что отличная функция. Если вы отредактируете свой ответ, чтобы включить пример использования его для капиталов, я пойду дальше и выберем его как правильно. (Я знаю, как это сделать, но другие не могут.) – foobarbecue