tôi có các mô hình sau:Làm cách nào để sử dụng ORM Django để truy vấn ví dụ nhiều-nhiều này?
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)
Với điều đó đang được nói, tôi đang cố gắng để bắt chước truy vấn này bằng cách sử dụng Django ORM (chọn tất cả các cuốn sách được viết bởi một tác giả cụ thể, lưu ý rằng tác giả có thể có nhiều sách và sách có thể có nhiều tác giả):
SELECT book_name
FROM authorbook, book
WHERE authorbook.author_id = 1
AND authorbook.book_id = book.id
tôi đã đọc this FAQ page trên trang web Django, nhưng trước khi tôi thay đổi cấu trúc mô hình của tôi và loại bỏ AuthorBook, tôi đã tò mò nếu tôi có thể bắt chước truy vấn mà sử dụng cấu trúc hiện tại .
Argh. Cảm ơn - não chỉ làm việc một nửa ngày hôm nay. :) – Huuuze
phản hồi của webjunkie có vẻ tốt hơn. Chỉ cần học Django bản thân mình. –
Nói chung, không có lý do gì để đề cập rõ ràng trường id trong ORM. Giả sử bạn có một cá thể Tác giả, bạn muốn Book.objects.filter (authorbook__author = author). Nhưng một ManyToManyField là con đường để đi, tất nhiên. –