我有一个类似社区的模型,其中一些用户可以是管理员,其他用户是普通用户。我可以将用户社区链接为外键或其他可能的关系。但是,我如何实现user_type?我应该在哪里有这个领域?它只是模型社区中的另一个领域吗?
答案 0 :(得分:3)
我想你想根据用户的类型为社区中的用户提供不同的访问级别。
在这种情况下,您可以将FK从UserProfile保留到Commmunity(如果一个用户只是一个社区的一部分)。
如果用户可以成为各种社区的一部分,则应在社区模型上保留名为users
的ManyToManyField。
此后只需将这些用户分组(参见Django组和权限)。设置您定义的组的权限。根据用户所在的组,他将拥有组权限。使用这些权限来决定授予特定用户的访问权限。
答案 1 :(得分:0)
取决于数据的大小和其他属性,但通常的方法是在社区和用户之间建立一对多的关系。然后,您可以在User中有一个声明用户类型的字段。
在数据库中,您将拥有通过外键链接的Community表和User表,User表将存储用户类型信息。