Я работаю над созданием приложения, подобного CRM, с использованием Django, и наткнулся на проблему.Компания, которая будет использовать приложение, имеет частных лиц в качестве клиентов, но также и другие компании.Поскольку они имеют разные поля, я создал две отдельные модели:
class PersonAccount(models.Model):
first_name = models.CharField(max_length=100, null=False)
last_name = models.CharField(max_length=100, null=False)
personal_id_number = models.CharField(max_length=50, unique=True, null=False)
document_series = models.CharField(max_length=50)
document_number = models.CharField(max_length=50, null=False)
document_emission_date = models.DateField(null=True)
document_expiration_date = models.DateField(null=True)
birth_date = models.DateField(null=True)
sex = models.ForeignKey(Sex, on_delete=models.CASCADE, null=False)
workplace = models.CharField(max_length=100)
nationality = models.ForeignKey(Geography, on_delete=models.CASCADE)
occupation = models.CharField(max_length=100)
observations = models.CharField(max_length=500)
created = models.DateTimeField(auto_now_add=True, null=True)
updated = models.DateTimeField(auto_now=True, null=True)
def __str__(self):
return "Person account: " + self.last_name + " " + self.first_name
class CompanyAccount(models.Model):
company_name = models.CharField(max_length=100, null=False)
chamber_of_commerce_reg_number = models.CharField(max_length=50, unique=True, null=False)
company_unique_id_number = models.CharField(max_length=50, unique=True, null=False)
company_type = models.ForeignKey(CompanyType, on_delete=models.CASCADE)
company_nationality = models.ForeignKey(Geography, on_delete=models.CASCADE)
company_activity = models.CharField(max_length=100)
company_representative = models.ForeignKey(PersonAccount, on_delete=models.CASCADE)
observations = models.CharField(max_length=500)
created = models.DateTimeField(auto_now_add=True, null=True)
updated = models.DateTimeField(auto_now=True, null=True)
def __str__(self):
return "Commpany account: " + self.last_name + " " + self.first_name
Я хочу соединить их обе с моделью адреса:
class AccountAddress(models.Model):
address_type = models.ForeignKey(AddressType, on_delete=models.CASCADE, null=False)
street = models.CharField(max_length=100)
street_number = models.CharField(max_length=100)
buliding = models.CharField(max_length=100)
entrance = models.CharField(max_length=100)
floor = models.CharField(max_length=100)
appartment_number = models.CharField(max_length=100)
postal_code = models.CharField(max_length=100)
city = models.CharField(max_length=100, null=False)
country = models.ForeignKey(Geography, on_delete=models.CASCADE, related_name='account_country')
province = models.ForeignKey(Geography, on_delete=models.CASCADE, related_name='account_province')
created = models.DateTimeField(auto_now_add=True, null=True)
updated = models.DateTimeField(auto_now=True, null=True)
def __str__(self):
return "Account address: " + str(self.account) + " - " + str(self.address_type)
Дело в том, что я довольно новичок в Django иединственное решение, которое я вижу в настоящее время, - это подключить реальную модель адреса к PersonAccount, а затем создать другое для подключения к CompanyAccount.Я уверен, что должен быть другой путь, но, хотя я некоторое время искал и читал, я не могу найти ничего, что соответствовало бы моим потребностям.
Не могли бы вы помочь мне?Спасибо!