DjangoでManyToManyキーを追加する方法


モデルフィールドを使用します。ManyToManyフィールドは、1つのモデルインスタンスが他の複数のモデルインスタンスと関連付けられることを可能にします。

以下のステップを実行して、ManyToManyキーを追加する方法を説明します。

ステップ1: モデルの作成 まず、ManyToMany関係を持つモデルを作成します。例として、BookモデルとAuthorモデルを使用します。

from django.db import models
class Book(models.Model):
    title = models.CharField(max_length=100)
    authors = models.ManyToManyField('Author')
class Author(models.Model):
    name = models.CharField(max_length=50)

上記のコードでは、BookモデルとAuthorモデルが定義されています。Bookモデルはauthorsフィールドを持ち、これがManyToManyフィールドです。

ステップ2: マイグレーションの作成と適用 モデルの変更をデータベースに反映させるために、マイグレーションを作成して適用する必要があります。以下のコマンドを順番に実行します。

python manage.py makemigrations
python manage.py migrate

ステップ3: ManyToManyフィールドの使用 ManyToManyフィールドを操作するには、モデルインスタンスを使用します。以下の例では、新しい本を作成し、著者を関連付けます。

author1 = Author.objects.create(name='John Doe')
author2 = Author.objects.create(name='Jane Smith')
book = Book.objects.create(title='My Book')
book.authors.add(author1, author2)

上記のコードでは、Authorモデルのインスタンスを作成し、Bookモデルのインスタンスを作成してから、authorsフィールドに関連する著者を追加しています。

これでManyToManyキーを追加する方法がわかりました。必要に応じて、他の関連操作(削除、取得など)も使用できます。