JawsIk
@JawsIk
Python Django, Lua, ЧПУ-станки(ArtCam, Aspire)

Как в Django добавить к результатам выборки количество вхождений строки текста в одном из полей?

Суть вопроса такова. Допустим имеется модель новостей:
class News(models.Model):
    category = models.CharField(max_length=15, choices=CATEGORY_NEWS_CHOISES, default='function', verbose_name='Категория')
    created = models.DateTimeField(default=get_now, verbose_name="Дата")
    brief = models.CharField(max_length=255, verbose_name='Краткая запись')
    text = models.TextField(blank=True, verbose_name='Большая новость')


И вот во вьюхе есть простой запрос:
all_news = News.objects.all().order_by('-created')

Задача 1. Узнать количество изображений в тексте записи и добавить это количество каждому пункту выборки.
Т.е. нужно что-то типа:
all_news.annotate(qty_img=Count(News -> text -> "в тексте найти <img src") 
# это не рабочий пример, я показываю принцип


Задача 2. Узнать вставлено ли в тексте записи видео (ответ только True или False).
Т.е. нужно что-то типа:
all_news.annotate(video_in_text = True if (News -> text -> "в тексте найдено class='note-video-clip' ") else False 
# это не рабочий пример, я показываю принцип


Ну вроде бы простая задача и понятная. А как это с-аннотировать правильно чтобы работало не могу понять.
  • Вопрос задан
  • 97 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы