- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
由于各种复杂的原因[1]我需要向 Django User 类添加额外的属性。
我无法使用配置文件或“继承”方式来执行此操作。 (如 Extending the User model with custom fields in Django )
所以我一直在做的是将 User 类包含在我的 local_settings 文件中。并将属性添加到其中。
也许令人惊讶的是,这似乎在很多情况下都有效。但当我从 UserManager.create_user() 创建新用户时则不然。所以我需要修补 UserManager.create_user() 方法的替代方法。查看此源代码(在 contrib.auth.models.py 中),我发现它用于创建用户的类保存在名为 UserManager.model 的属性中,而不是直接引用。
该行是这样的:
user = self.model(None, 用户名, '', '', email.strip().lower(), 'placeholder', False, True, False, now, now)
问题是这个 self.model (我假设它包含对 User 类的引用)似乎不是我的修补版本。
那么,有谁知道在 UserManager 的情况下这个 self.model 是在哪里设置的?我是否正确地假设此时代码尚未经过 local_settings,因此我对 User 类的补丁不存在?是否有更好的地方来修补类?
干杯
菲尔
[1] 满足当前io.我需要使 User 类使用数据库中不同的现有表,该表具有额外的字段和约束。
更新:供将来引用,看起来代理模型是 Django 支持我需要的方式:http://code.djangoproject.com/ticket/10356
最佳答案
拥有特定于站点的用户字段的常用方法是在 settings.py 中指定用户配置文件表。然后,您可以通过 u.user_profile() 方法检索特定设置。文档中有详细记录。
关于python - Django : Adding a property to the User class. 在运行时更改它和 UserManager.create_user,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/964569/
我是一名优秀的程序员,十分优秀!