私のモデル:
class End_User(models.Model):
location = models.ForeignKey(Location)
first_name = models.CharField(max_length=70, blank=True, null=True)
email_address = models.CharField(max_length=70, blank=True, null=True)
class Phone_Client(models.Model):
end_user = models.ManyToManyField(End_User)
...
extensions = models.CharField(max_length=20)
class Line(models.Model):
phone_client = models.ManyToManyField(Phone_Client, through='Phone_Line' )
....
voicemail = models.BooleanField(default=False)
class Phone_Line(models.Model):
phone_client = models.ForeignKey(Phone_Client)
line = models.ForeignKey(Line)
line_index = models.IntegerField()
つまり、基本的に 1 人のエンド ユーザーが複数の電話を持つことができ、電話は Phone_line を通じて関連付けられた複数の回線を持つことができます。
私のページでは、これらすべてのオブジェクトを編集可能にし、Phone_Clients と Line の実行時に作成された新しいインスタンスをすべて同じページに配置する必要があります。現在、単純な End_User モデル フォームと、Phone_Client および Lines 用の modelformset_factory オブジェクトを作成しています。電話には多くの回線を含めることができるため、phone_formset 内の各電話フォームには回線フォームセット オブジェクトを含めることができます。私は現在、このようなことをしています
end_user = End_User.objects.get(pk=user_id)
user_form = End_UserForm(instance=end_user)
Phone_ClientFormSet = modelformset_factory(Phone_Client,form=PartialPhone_ClientForm, extra=0, can_delete=True)
phone_clients_formset = Phone_ClientFormSet(queryset=end_user.phone_client_set.all(), prefix='phone_client')
all_lines = modelformset_factory(Line, form=PartialLineForm, extra=0, can_delete=True)
phone_clients = end_user.phone_client_set.all()
client_lines_formsets = {}
for phone in phone_clients:
client_lines_formsets[phone.id] = all_lines(queryset=phone.line_set.all(), prefix='phone_client_'+str(phone.id))
このリストを使用して、フォームセットを使用してテンプレート内の phone_client に属する行を表示しています。
モデルについて次の質問があります
inline_formset ファクトリを使用して、スルー クラスを含む多対多の関係を処理できますか? もしそうなら、関係を介してPhone_Client、Line、およびPhone_Lineに対してそれを行うにはどうすればよいですか?
特定の電話と回線の組み合わせの line_index を表示する必要がありますが、テンプレートでそれを行うにはどうすればよいですか?
djangoテンプレートから多対多の「スルー」テーブルのプロパティにアクセスするにはどうすればよいですか? 表示するだけではなく、可能であれば回線または電話フォームセットで値を電話、回線の組み合わせにバインドして、ユーザーがインデックスを変更した場合に、フォームセットデータを投稿しながらデータベースに保存できるようにします。
私はdjangoが初めてなので、どんな助けも本当に感謝しています。ありがとう!!