Mysql Django——模型构造(用户配置文件或独立模型)

Mysql Django——模型构造(用户配置文件或独立模型),mysql,django,models,Mysql,Django,Models,标题的措辞可能有点混乱。我有一个应用程序,它有不同权限级别的用户(管理员和非管理员) 我不确定以下哪种构造更可取:只需使用User_Profile并添加一个admin字段或创建两个模型(一个用于admin,一个用于admin) 这是否比为管理员创建一个单独的表更可取,该表只通过foreignkey链接到用户和雇主?我的视图将检查每个用户的管理员状态,因此我担心反复查询大型用户配置文件表可能会变得昂贵 可能还没有到优化的阶段,但我只是对最佳实践很好奇 实际上,我建议Django的内置用户权限优于以

标题的措辞可能有点混乱。我有一个应用程序,它有不同权限级别的用户(管理员和非管理员)

我不确定以下哪种构造更可取:只需使用User_Profile并添加一个admin字段或创建两个模型(一个用于admin,一个用于admin)

这是否比为管理员创建一个单独的表更可取,该表只通过foreignkey链接到用户和雇主?我的视图将检查每个用户的管理员状态,因此我担心反复查询大型用户配置文件表可能会变得昂贵


可能还没有到优化的阶段,但我只是对最佳实践很好奇

实际上,我建议Django的内置用户权限优于以下选项之一:

以下是帮助您入门的快速教程:

那篇教程太棒了。我知道Django的组/权限功能,但以前从未使用过。但问题是,我不确定在这种情况下如何实现它。我是否应该为每个公司“company=group(companyX)””动态创建一个组,然后为该公司的管理员“company\u admin=group(companyX\u admin)”创建第二个组?在这种情况下,这似乎是处理问题的方法,但感觉有点笨拙……也许不是。而且,为了让我能不断提高编码水平,我很好奇为什么这种方法更可取。使用我原来的选项,我必须将用户(从请求对象)加入到用户配置文件,然后查找admin列。现在我通过M2M关系从用户到组。是这样吗?为什么这样更好?非常感谢你@Brandon Django实际上将权限与模型相关联,而不是与模型实例相关联,这听起来像是您想要做的(没有通用的管理员集,而是每个公司都有自己的管理员集。)我认为,在这种情况下,您最好在您的用户配置文件中添加一个管理员字段。这比创建管理模型更可取。如果您还没有,请查看本教程,了解如何使用UserProfile模型扩展用户模型,这将有助于减少查询数量:谢谢。实际上,我对扩展用户模型很熟悉。我知道您可以利用某些经理命名约定。我不认为这比简单的外键关系好那么多,但我会再检查一遍。
class User_Profile(models.Model):       
    user=models.ForeignKey(User, unique=True)
    employer=models.ForeignKey(Company,blank=True)
    admin=models.BooleanField(default=False)
    phone=models.CharField(blank=True)