Django 身份验证:用户配置文件与contribute_to_class

Dan*_*gen 5 django django-authentication

以前我把自定义的用户相关字段放在一个新的UserProfile类中,但是现在我在另一个项目中看到可以使用contribute_to_class模型字段的方法来将新字段附加到auth.User模型中。

每种方法的优点和缺点是什么?

Chr*_*att 3

最大的可能是contribute_to_class没有记录,Django 文档非常清楚地表明批准的方法是使用配置文件向User. Python 是一种非常强大的语言,它可以让你做许多“聪明”的事情来实现一些期望的目标。但是,惯例可以引导你远离黑暗面。

如果有一个坚实的、合理的、必要的理由来使用contribute_to_class而不是配置文件,那么也许就可以了。我不完全确定这样的原因是什么,但也许您可以证明该方法中的某种性能改进对于需要高性能的应用程序来说是必要的。

不过,即使存在,这种情况也很可能很少见。抛开其他一切,遵循惯例