Rails arka planından geliyorum ve Django'da sağlanan "İlişkilendirme Yöntemleri" ni kullanarak biraz sorun yaşıyorum. Öyle gibi (kısa olması için basitleştirilmiştir) iki model vardır:Django ManyToMany ilişkisinin tersini nasıl kullanılır?
class User(models.Model):
username = models.CharField(max_length=100, unique=True)
companies = models.ManyToManyField('Company', blank=True)
class Company(models.Model):
name = models.CharField(max_length=255)
Django belgelerine göre:
Ben de bir Kullanıcı örneğini varsa, kullanıcı adı verilen, yapabileceğim anlıyoruz:"ManyToManyField sahip olan modeli önemli değil, ama sadece bir modele koymalısınız - her ikisine de değil.
user.companies
Sorum ben ters yapmalıyım nasıl?
company.users # This doesn't work!
ne kongre bunun için var: Nasıl Şirket anına ait tüm kullanıcıları alırım, en Firma diyelim? Okuduğum belgeler gerçekten bunu kapsamıyor. Her iki yönde çalışmak için derneğe ihtiyacım var, bu yüzden onu bir modelden diğerine taşıyamam.
Mükemmel cevap, bir parametre olarak bir
related_name
sağlamış hızlı cevap için teşekkür geçersiz kılabilir. Related_name için –+1. Her zaman * nefret edilen 'model_set' sözdizimi. Çok kirli bir duygu. –
Sanırım bana _lazy_ hissediyor. Sınıf isimlerine göre uygun bir geriye doğru ilişki bulmak zor değildir. Related_name ile çalışmayı çok daha kolay hale getirir. –