Nasıl Django içinde Bir-Çok bir ilişki ifade etmek için
Şu an benim Django modelleri tanımlamaya çalışıyorum ve OneToManyField
model alan bir tip olmadığını fark ettim. Bunu yapmak için bir yolu vardır eminim, ne kaçırıyorum bilmiyorum. Ben aslında şöyle bir şey var:
class Dude(models.Model):
numbers = models.OneToManyField('PhoneNumber')
class PhoneNumber(models.Model):
number = models.CharField()
Bu durumda, her Dude
birden fazla PhoneNumber
s, ama ilişkimiz tek yönlü olmalı, bu ihtiyacım yok ki PhoneNumber
Dude
yeri, kendiliğinden, ben olabilir çok farklı nesneleri kendi PhoneNumber
örnekleri, gibi bir Business
örneğin:
class Business(models.Model):
numbers = models.OneToManyField('PhoneNumber')
Ben OneToManyField
yok () modeli bu tür bir ilişkiyi temsil etmek yerine ne yapardın? Bir-çok ilişkisi bildirmek kadar kolay olduğu Uyku/JPA dan geliyorum:
@OneToMany
private List<PhoneNumber> phoneNumbers;
Django bu nasıl ifade edebilirim?
CEVAP
İşlemek için Bir-Çok Django ForeignKey
kullanmanız gereken ilişkiler.
ForeignKey belgelerine, son derece kapsamlı ve tüm sorulara cevap vermelidir:
https://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey
Sizin örnekte mevcut yapı her Dostum bir numara, ve birden fazla Dudes ait her sayı () İş ile aynı olmasını sağlar.
Eğer ters ilişki istiyorsanız, PhoneNumber model, Dostum ve İş için bir iki ForeignKey alanları eklemek gerekir. Bu her sayı da bir erkeğe ya da bir İş, ait ve Ahbaplar ve İşletmeler birden fazla telefon sahibi olmak mümkün olması için izin verecek. Bundan sonra ne olabileceğini düşünüyorum.
class Business(models.Model):
...
class Dude(models.Model):
...
class PhoneNumber(models.Model):
dude = models.ForeignKey(Dude)
business = models.ForeignKey(Business)
Django nasıl bir görünüm içinde 2 ya d...
Nasıl Django sürümünü kontrol etmek iç...
Nasıl bir veritabanı SQL Server içinde...
Nasıl bir Kısıtlama Sql server içinde ...
Nasıl eğer bir element, bir dizi içind...