0
私はDjangoを学習しています。次のシナリオで自分自身を見つけました:私はproject
のモデルをさまざまなフィールドに持っています。そのうちの1つはkey_personnel
です。もう1つはkey_person_roles
で、プロジェクトの各担当者が担当する役割を定義します。モデルが別のモデルの一部である場合にのみ、モデルにフィールドを割り当てる
- プロジェクトにはさまざまな主要人員が存在することができ、各主要人事にはさまざまな役割があります。
- 主要な担当者にはデフォルトの役割がなく、異なるプロジェクトでどの役割も果たすことができます。
このシナリオをDjangoでモデル化するにはどうすればよいですか?私はそのようなシナリオをモデル化する方法の例を見つけることができないようです。ここに私のmodels.py
です:
from django.db import models
from phonenumber_field.modelfield import PhoneNumberField
class Key_Person(models.Model):
name = models.CharField(max_length=200)
designation = models.CharField(max_length=100)
email = models.EmailField()
contact = PhoneNumberField()
class Meta:
ordering = ['name']
verbose_name_plural = "Key Persons"
def __unicode__(self):
return self.name
class Key_Person_Role(models.Model):
role = models.CharField(max_length=100)
class Meta:
verbose_name_plural = 'Key Person Roles'
def __unicode__(self):
return self.role
class Project(models.Model):
title = models.CharField(max=150)
description = models.TextField()
# more fields here ...
key_persons = models.ManyToManyField(Key_Person)
# What I want is to assign a role to each key person above.
key_person_roles = models.ManyToManyField(Key_Person_Role)
def __unicode__(self):
return self.title
私はあなたの助けに感謝。
ありがとうございました。これは完全に動作します!管理者の場合、[私はこれをドキュメントで見つけました](https://docs.djangoproject.com/en/1.10/ref/contrib/admin/#working-with-many-to-many-intermediary-models)。 – engineervix
私は 'unique_together(( 'person'、 'project'))'から 'unique_together =(( 'person'、 'project')に変更しなければなりませんでした。' – engineervix
うん、それはタイプミスでした。訂正されました! – schwobaseggl