tengo los siguientes modelos:¿Cómo uso el ORM de Django para consultar este ejemplo de muchos a muchos?
class Author(models.Model):
author_name = models.CharField()
class Book(models.Model):
book_name = models.CharField()
class AuthorBook(models.Model):
author_id = models.ForeignKeyField(Author)
book_id = models.ForeignKeyField(Book)
Con eso se dice, estoy tratando de emular esta consulta mediante el ORM de Django (seleccionar todos los libros escritos por un autor específico, señalando que los autores pueden tener muchos libros y libros se tienen muchos autores):
SELECT book_name
FROM authorbook, book
WHERE authorbook.author_id = 1
AND authorbook.book_id = book.id
he leído this FAQ page en el sitio web de Django, pero antes de que modificar mi estructura del modelo y quitar AuthorBook, tenía curiosidad si podía emular esa consulta utilizando la estructura actual .
Argh. Gracias, el cerebro solo funciona a medias hoy. :) – Huuuze
La respuesta de webjunkie parece mejor. Solo estoy aprendiendo a Django. –
En general, no hay ninguna razón para mencionar explícitamente el campo de identificación en el ORM. Suponiendo que tiene una instancia de Author, querría Book.objects.filter (authorbook__author = author). Pero un ManyToManyField es el camino a seguir, por supuesto. –