1
私は、ユーザーが1つのSubmit
ボタンをクリックして送信する4つのフォームを持っています。形式は以下のとおりです。私のビューからdjango汎用外部キーを設定するにはどうすればよいですか?
Person Form
- 人モデルへAddress Form
を救う - モデルPhone Form
にメールで知らせるために保存します - - Phoneモデルに保存したいモデルEmail Form
に対処するために保存します。
ので、Person
は、複数のAddresses
、Emails
とPhone
番号を持つことができます。だから、私は人のモデルでこれをやった:
class Person(models.Model):
first_name = models.CharField(max_length=99)
middle_name = models.CharField(max_length=99, blank=True, null=True)
last_name = models.CharField(max_length=99, blank=True, null=True)
address = GenericRelation('Address')
phone = GenericRelation('Phone')
email = GenericRelation('Email')
は、私は今、私はこれらにデータを保存する方法Address
、Phone
とEmail
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
object_id = models.PositiveIntegerField()
content_object = GenericForeignKey('content_type', 'object_id')
ため、それぞれのモデルフィールドと一緒にこれらの3行を持っていますユーザーからフォームを受け取ったとき、私の見解で正しくモデル化されていますか?これまで私が持っていたこと。
if request.method == 'POST':
if person_form.is_valid() and address_form.is_valid() and email_form.is_valid() \
and phone_form.is_valid():
address = address_form.save()
email = email_form.save()
phone = phone_form.save()
person = person_form.save(commit=False) #This person model has a generic foreign key relation with Address, Email and Phone
person.address = (address) #This is where I need help. Am I thinking right? Is this the right way to save?
はい、複数のモデルを参照します。これはPersonモデルです。アカウント、連絡先などあります。本当にありがとうございました。 – DeA