2011-01-06 24 views
5

Nếu tôi có mô hình sau:Select_related() ngược liên quan - mô hình tự động dân số

class Contact(models.Model) 
    name = models.CharField(max_length=100) 
    ... 

class ContactAddress(models.Model) 
    line1 = models.CharField(max_length=100) 
    line2 = models.CharField(max_length=100) 
    ... 
    contact = models.ForeignKey(Contact) 

bây giờ tôi muốn lấy tất cả Danh bạ và cung cấp địa chỉ để được tự động dân cư. cách nào tốt nhất để làm việc này? Cách duy nhất tôi đã tìm thấy cho đến nay là để lọc ra các liên hệ tôi muốn và vòng quanh mỗi số liên lạc và gán điều này để Contact.addresses. Sau đó tôi sử dụng điều này để xuất ra từng địa chỉ Danh bạ trong một mẫu.

Có cách nào tốt hơn để thực hiện việc này không? Select_related() gần như làm những gì tôi muốn, nhưng dường như không thể làm việc theo hướng ngược lại.

Cảm ơn trước sự giúp đỡ của bạn về vấn đề này!

Trả lời

4

Bạn nói đúng, select_related chỉ hoạt động trở lại! Để thực hiện tra cứu ngược hiệu quả hơn, hãy xem this!

+0

Chỉ cần làm rõ, bạn có thể đảo ngược tra cứu bằng 'select_related' trên OneToOne Field - nó sẽ không hoạt động với FK hoặc M2M –

Các vấn đề liên quan