Laut Doku soll man MyModel.objects.raw() methode verwenden um eigenen/komplitierte Queries auszuführen.
in meinem Fall sind diese zum Ausführen:
Code: Alles auswählen
SELECT YEAR(publication_date) as jahr, COUNT(YEAR(publication_date)) as anzahl
FROM books_book
GROUP BY YEAR(publication_date)
ORDER BY YEAR(publication_date)
Code: Alles auswählen
SELECT title, publication_date
FROM books_book
WHERE YEAR(publication_date) = <int_value>
ORDER BY publication_date DESC
Code: Alles auswählen
query = '''SELECT YEAR(publication_date) as jahr, COUNT(YEAR(publication_date)) as anzahl
FROM books_book
GROUP BY YEAR(publication_date)
ORDER BY YEAR(publication_date)'''
year_tags_dict = Book.objects.raw(query)
Es gibt ja auch Connection und Cursor, aber wie weit ich weiß. Methode raw() ist extra für "eigene SQL-Abfragen" da.InvalidQuery: Raw query must include the primary key
P.S. wenn ich versuche die RAW-Abfrage in shell (myproject/manage.py shell) auszuführen, bekomme keine fehlermeldung. Stattdessen bekomme ich nur das:
Code: Alles auswählen
<RawQuerySet: 'SELECT bla-bla-bla'>