djangoの既存のモデルと多対1の関係を作成するにはどうすればよいですか?見るとドキュメンテーション、あなたは外部キーを作成し、他のモデルを参照して作成したオブジェクトができていることがわかります。
例えば、
r = Reporter(first_name='John', last_name='Smith', email='[email protected]')
r.save()
a = Article(id=None, headline="This is a test", pub_date=date(2005, 7, 27), reporter=r)
a.save()
その後、r
withのIDにアクセスできますa.reporter.id
。
ただし、これに関する1つの問題は、r
throughのIDを確認するa
場合は、a
それを行うために作成する必要があることです。
既存のモデルでこれをどのように行いますか?
たとえば、ユーザーがいて、ユーザーがゲームの複数のキャラクターを作成できるようにしたい場合、ユーザーがすでに存在する場合、そのキャラクターに外部キーを割り当てるにはどうすればよいですか?
見ると、この答えは、あなたはあなたが外部キーに参照したいというモデルを与える必要があることを見たが、それは実際にそれを行う方法を説明していません。
既存のモデルでこれをどのように行いますか?
参照しているモデルが不明です。既存のレポーターを意味する場合は、それを取得してまったく同じ方法で実行します。
r = Reporter.objects.get(email='[email protected]')
a = Article(headline="This is a test", pub_date=date(2005, 7, 27), reporter=r)
a.save()
既存の記事を意味する場合は、他のモデルインスタンスフィールドと同じように外部キーを変更できます。
a = Article.objects.get(headline="This is a test")
a.r = Reporter.objects.create(...) # or .get() depending on what you want.
a.save()
ユーザーがすでに存在する場合、キャラクターに外部キーを割り当てるにはどうすればよいですか?
同じロジックを使用して、ユーザーを取得し、この既存のユーザーオブジェクトで新しいキャラクターを作成します。
# Get user, or if this was the logged in user maybe just request.user
user = User.objects.get(username='wanderer')
# Create the character, using the existing user as a foreign key
# (the .create is just shorthand for creating the object then saving it)
Character.objects.create(character_name='Trogdor', user=user)
# Or alternatively, you can simply use the implicit reverse relationship
user.character_set.create(character_name='Homestar Runner')
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加