古典的なアプローチは次のようになります。
1 user circle can contains n users
1 user may be in n user circles.
これは N:M の関係です。
ただし、これは django 用であるため、私のdjango 設計の提案は次のとおりです。
1:1 relationship to circle:
1 user has 1 circle
N:M relationship to users circle:
1 circle can contains n users
1 user may be in n circles.
1 対 1 の円と m2m の関係:
class Circle(models.Model):
owner = models.OneToOneField(User, primary_key=True)
users = models.ManyToManyField(User)
ユーザーの作成時にユーザーのサークルを作成するには:
from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
def create_circle(sender, **kw):
user = kw["instance"]
if kw["created"]:
c = Circle(user=user)
c.save()
post_save.connect(create_circle, sender=User)
楽しんで、あなたの信頼できるサークルに私を登録してください ;)