У меня есть две модели: Owner
и Accountants
.Владелец может иметь 0 или более бухгалтеров, бухгалтер может быть подключен к 1 или более владельцам.
До сих пор я создал две модели, используя ManyToManyField, вот они:
models.py
class Accountants(models.Model):
owner = models.ManyToManyField(Owner, related_name='accountants')
company = models.CharField(db_column='Company', max_length=25)
fiscal_rep = models.BooleanField(default=False)
class Owner(models.Model):
name = models.CharField(db_column='Owner_Name', max_length=200)
surname = models.CharField(db_column='Owner_Surname', max_length=30)
property = models.ManyToManyField(Property, blank=True)
Я создал свою форму для добавления бухгалтера, она выглядит следующим образом:
class AccountantAddForm(forms.ModelForm):
owner = forms.ModelMultipleChoiceField(queryset=Owner.objects.all(),widget=forms.Select(
attrs={
...
Проблема в том, что когда я добавляю бухгалтера, поле «Владелец» ожидает более одного значения имою форму я передаю владельцу, предварительно заполненную как initial data
, поэтому мне пришла в голову идея сделать другую модель с именем Owner_Accountant
, соединяющую обе модели Owner
и Accountants
, как показано ниже:
class Owner_Accountants(models.Model):
owner_pk = models.ForeignKey(Owner, related_name='owner_accountant')
accountant_pk = models.ForeignKey(Accountants, related_name='accountants_owner')
То, что я хочу знать, это: хорошее ли это решение или это одно и то же?Есть ли лучший способ сделать это, или я делаю это совершенно неправильно?