0

django の募集モデルに最適な設定は何だろうと思っていましたか?

ユーザーは 1 人のユーザーによってのみリクルートされる可能性がありますが、ユーザー自体が他の多くのユーザーをリクルートする可能性があります。

それは次のように簡単ですか:

class Recruiter(models.Model):
    recruiter = models.ForeignKey(settings.AUTH_USER_MODEL)

class Recruited(models.Model):
    recruited = models.ForeignKey(settings.AUTH_USER_MODEL)


class UserProfile(AbstractUser):

    recruited_by = models.ForeignKey(Recruiter, blank=True)
    recruited = models.ManyToManyField(Recruited, blank=True)

    objects = UserManager()

それとも、これを行うより良い方法ですか?

4

2 に答える 2

1

何のために努力しているのですか?私はそれをします:

class UserProfile(AbstractUser):

    recruited_by = models.ForeignKey("self", blank=True, related_name="recruited")

    objects = UserManager()

Recruiter と Recruited クラスは必須ですか?

于 2013-07-05T12:37:48.200 に答える
1

私はこのようにします:

class Recruiter(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL)

class Recruited(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL)
    recruited_by = models.ForeignKey(Recruiter)

すべての Recruiterisはユーザーであり、すべての Recruitedisはユーザーですが、1 人の Recruiter が 1is recruited by人の Recruiter で 1 人の Recruiter がhave recruited0 から多くの Recruited になる可能性があります。このスキーマには、次のようにアクセスされる Recruiter インスタンスからの暗黙的な後方関係があります。

 recruiter_instance.recruited_set

ドキュメントを参照してください:
https://docs.djangoproject.com/en/1.4/ref/models/fields/#django.db.models.ForeignKey
https://docs.djangoproject.com/en/1.4/topics/db /queries/#backwards-related-objects
https://docs.djangoproject.com/en/1.4/ref/models/fields/#onetoonefield
異なる Django バージョンを使用している場合は、バージョン スイッチを使用できます - すべての Django ドキュメントに記載されています右下隅のページ。

于 2013-07-05T12:39:07.600 に答える