Форум сайта python.su
На сколько я понимаю через ORM выбрать все core_wallpaper, в имени которых содержится искомая строка, а затем отсортировать их по популярности не удастся, а потому пишу следующее:
sql = """
SELECT core_wallpaper.id, SUM(core_rating.value) AS val
FROM core_wallpaper INNER JOIN core_rating ON
core_wallpaper.id = core_rating.wallpaper_id
WHERE core_wallpaper.name LIKE "%s"
GROUP BY core_wallpaper.id
ORDER BY val DESC;
"""
cursor = connection.cursor()
cursor.execute(sql, ["%" + query + "%"])
print sql % query
result = cursor.fetchall()
print len(result)
return HttpResponse(result)
SELECT core_wallpaper.id, SUM(core_rating.value) AS val
FROM core_wallpaper INNER JOIN core_rating ON
core_wallpaper.id = core_rating.wallpaper_id
WHERE core_wallpaper.name LIKE "111"
GROUP BY core_wallpaper.id
ORDER BY val DESC;
Офлайн
$m1tЧерез `extra` можно попробовать.
На сколько я понимаю через ORM выбрать все core_wallpaper, в имени которых содержится искомая строка, а затем отсортировать их по популярности не удастся
Офлайн
Daevaorn
мне extra показался сложнее, чем написать sql врукопашную.
а вопрос кстати решился - надо было ставить плейсхолдер %s без кавычек.
(это так, на случай если кто то будет читать это через поисковик)
Офлайн
$m1tА потом ещё объект создавать вручную…не интересно:)
мне extra показался сложнее, чем написать sql врукопашную.
Офлайн
Пересмотрел весь свой код - у меня много где написан обычный sql. Там, где join идет вместе с group by, т.е. почти везде. ORM используется вообще редко =(
Я что-то не понимаю в жанговском orm или так и задумано?
Офлайн
$m1tСкорей всего у тебя очень специфичное приложение или архитектура. Обычно агрегация не часто применяется, а если она очень нужна, то я предпочитая небольшую денормализацию и “легкие запросы”. Итого - всего пара-тройка кастомных запросов на проект и чуть-чуть `extra`.
Я что-то не понимаю в жанговском orm или так и задумано?
Офлайн
Daevaornда вроде бы типичный веб 2.0 - выбрать самые много-тегированные, много-рейтинговые, много-комментированные, много-добавленные-в-избранное…
очень специфичное приложение или архитектура
Офлайн