Django休息框架将数据从一个表导入另一个表

时间:2018-01-05 07:27:27

标签: django django-rest-framework

我正在为ios应用程序做一个django rest框架API。目前,我正在做一个用户和家庭之间的功能。 让我解释一下这两个表之间的逻辑。

  • MyUser =当前用户(可用于登录的帐户)

  • 家庭=当前用户的家庭成员,例如:父亲母亲(不是帐户,不能用于登录)

我现在想的是,如果当前用户的家人想要创建一个帐户,是否可以将家庭表中的数据导入到该家庭成员的用户表中进行注册?

  • MyUser:userIdusernamepasswordemailphone_numberidentification_numfirst_namelast_name

  • 系列:IduserId(用户表的外键,不能为空),familyId(可以为null,原因是允许用户添加家庭成员没有注册帐户的人,)phone_numberidentification_numfirst_namelast_namerelationship

示例场景:

  • 用户向该家庭成员发送了邀请链接(通过电子邮件或其他社交应用程序,并将数据导入家庭成员以注册帐户
  • 家庭成员点击邀请链接
  • 重定向到注册页面,其中包含来自族表的详细信息。
  • 如果注册成功,请将该系列成员的userId插入到family表的familyId中。
  • 该家庭成员帐户的家庭表也将更新为与当前用户拥有家庭数据。

我清楚地解释了吗?对不起,如果不是,你可以告诉我它是否不够清楚,所以我可以试着让它更清楚。 这种设计好吗?好像它有很多缺陷。 是否可以将所有信息导入该邀请注册页面?

我的合作伙伴有另一个想法,即用户和关系表。

关系表:UserId(当前userId,用户表的外键),FamilyId(系列用户ID,用户表的外键),Relationship(例如:母亲,父亲) )

当用户创建关系时,如果家庭没有帐户,用户将创建一个没有用户名和密码的用户(但仍然有userId,但我不明白这是怎么可能的,因为用户名和密码是必须的因此,我的解决方案是第一个1)

1 个答案:

答案 0 :(得分:1)

class Relation(models.Model):
    to_user = models.ForeignKey('user.User',
                                related_name='relation_to_user',
                                on_delete=models.CASCADE)
    RELATION = {
        0: u'father',
        1: u'mother',
        2: u'other',
    }
    relation = models.IntegerField(choices=RELATION.items())

class Family(models.Model):
    relations = models.ManyToManyField(Relation)
    from_user = models.ForeignKey('user.User',
                                  related_name='family_from_user',
                                  on_delete=models.CASCADE)

user->MyFamily->MyRelations,但当您的家人拥有其他真实用户时,这会浪费存储空间。

我用Django编写了类似的app后端。我的设计如下: Relations: from_user to_user relation Family:users,使用此模式可以节省存储空间,但每次都需要自己计算家庭关系。

虚假使用可以创建如下:

   fake_user.set_unusable_password()