[解決済み] Django の ManyToMany リレーションシップと追加フィールド
2023-07-04 19:42:31
質問
自動的に作成されたManyToMany結合テーブルに、いくつかの追加情報を格納したいのですが。Djangoでどのようにそれを行うのでしょうか?
私の場合、2つのテーブルがあります: "Employees" と "Projects" です。私が保存したいのは、それぞれのプロジェクトで、それぞれの従業員が1時間の作業でいくら受け取るかということです、これらの値は同じではないので。では、どのようにすればいいのでしょうか?
私が思いついたのは、メソッド "ManyToManyField" の代わりに、これらの新しい情報を格納するために明示的に 3 番目のクラス/テーブルを作成し、メソッド "ForeignKey" を使用して "Employees" および "Projects" とその関係を設定することです。私はそれが動作することを確信していますが、これは最良のアプローチでしょうか?
どのように解決するのですか?
実現したいことの例です。
http://docs.djangoproject.com/en/dev/topics/db/models/#extra-fields-on-many-to-many-relationships
リンクが切れたときのために。
from django.db import models
class Person(models.Model):
name = models.CharField(max_length=128)
def __str__(self): # __unicode__ on Python 2
return self.name
class Group(models.Model):
name = models.CharField(max_length=128)
members = models.ManyToManyField(Person, through='Membership')
def __str__(self): # __unicode__ on Python 2
return self.name
class Membership(models.Model):
person = models.ForeignKey(Person)
group = models.ForeignKey(Group)
date_joined = models.DateField()
invite_reason = models.CharField(max_length=64)
関連
-
[解決済み】Doctrine2: 参照テーブルで余分なカラムを持つ多対多を処理する最良の方法
-
[解決済み】Djangoで多対多のフィールドをオプションにするにはどうすればいいですか?
-
[解決済み】Djangoで一対多の関係を表現する方法は?
-
[解決済み] なぜORMを使う必要があるのですか?[クローズド]
-
[解決済み] DBに型を格納する際のMIMETypeの最大長について
-
[解決済み] DB2とOracleから見たCLOBとBLOBの違いとは?
-
[解決済み] テーブルのネーミング。アンダースコアとキャメルケース、名前空間?単数形と複数形?
-
[解決済み] 二相コミットはどのように最後の一秒の失敗を防ぐのか?
-
[解決済み] HiveQLクエリの結果をCSVに出力するにはどうしたらいいですか?
-
[解決済み] 大きなデータベース」って何?[クローズド]
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] DBに型を格納する際のMIMETypeの最大長について
-
[解決済み] 1対1の関係はどのようなときに使うべきですか?
-
[解決済み] データベースとファイルシステムストレージ
-
[解決済み] データベースからdjangoのモデルを生成することは可能か?
-
[解決済み] 営業時間のデータベースへの格納
-
[解決済み] キーの取り外し方法を教えてください。
-
[解決済み] 破損したSQLite3データベースを復旧する方法
-
[解決済み] データベースとフラットファイル
-
[解決済み] テーブルを増やすか、カラムを増やすか、どちらが良いデータベース設計か?
-
[解決済み] 大きなデータベース」って何?[クローズド]