我想知道django的招聘模型最好的设置是什么?
一个用户可以只由一个用户招募,但该用户本身可以招募许多其他用户。
是不是就像这样简单:
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()或者这是一种更好的方式呢?
发布于 2013-07-05 20:39:08
我会这样做:
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)因为每个招聘人员is一个用户,每个招聘人员is一个用户,但是一个Recruited is recruited by一个招聘人员和一个招聘人员可以have recruited 0到许多Recruited。在此模式中,存在来自招聘人员实例的隐式反向关系,如下所示:
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版本,你可以使用version switch --它在每个Django文档页面的右下角。
发布于 2013-07-05 20:37:48
你在尝试什么?我会这么做的:
class UserProfile(AbstractUser):
recruited_by = models.ForeignKey("self", blank=True, related_name="recruited")
objects = UserManager()招聘人员和招聘课程是必需的吗?
https://stackoverflow.com/questions/17488944
复制相似问题