İlk olarak, sorunun nasıl çözüleceğini biliyorum, sadece neden olduğunu anlamaya çalışıyorum. Hata mesajı:Django modelleri: Neden isim çatışıyor?
users.profile: Reverse query name for field 'address' clashes with related field 'Address.profile'. Add a related_name a rgument to the definition for 'address'.
Ve kod: Doğru, bu çizgiyi anlıyorsanız
class Address(models.Model):
country = fields.CountryField(default='CA')
province = fields.CAProvinceField()
city = models.CharField(max_length=80)
postal_code = models.CharField(max_length=6)
street1 = models.CharField(max_length=80)
street2 = models.CharField(max_length=80, blank=True, null=True)
street3 = models.CharField(max_length=80, blank=True, null=True)
class Profile(Address):
user = models.ForeignKey(User, unique=True, related_name='profile')
primary_phone = models.CharField(max_length=20)
address = models.ForeignKey(Address, unique=True)
:
address = models.ForeignKey(Address, unique=True)
bir öznitelik neden olur ile Address
sınıfa eklenecek adı profile
. diğer "profil" adının yaratıcısı nedir?
Ters adına ihtiyacım yoksa ne olur? Devre dışı bırakmanın bir yolu var mı? Adresler bir düzine şey için kullanılır, bu yüzden ters ilişkilerin çoğu zaten boş olacaktır.
Adres alanları, adresler için ayrı bir tabloya sahip olmak yerine modele kopyalamanın bir yolu var mı? Python kalıtımı olmadan (bu bir anlam ifade etmez ve bir Modelde 2 adres varsa, işe yaramıyor).
Bunu görmedim, teşekkürler! Tuhaf sözdizimi. – mpen
Bu kesinlikle devre dışı bırakmanın doğru yolu. – Exelian
, https://code.djangoproject.com/ticket/5537 adresinden alındı –