【发布时间】:2014-01-04 21:52:49
【问题描述】:
我有一个 Django 应用程序,它需要一个额外的字段(到 Book 类的多对多映射),我通过扩展 AbstractUser 来做到这一点。
如果您对 Django 的用户模型非常满意,并且只想添加一些额外的配置文件信息,您可以简单地继承 django.contrib.auth.models.AbstractUser 并添加您的自定义配置文件字段。此类提供默认 User 作为抽象模型的完整实现。
class User(AbstractUser):
entitledBooks = models.ManyToManyField(Book)
我在 settings.py
中添加了模型AUTH_USER_MODEL = 'BookRServer.User'
但是如何(以编程方式)创建用户?
user = User.objects.create_user() 不起作用。
【问题讨论】:
-
“不起作用”是什么意思?堆栈跟踪,好吗?另外,您是否从模型中导入用户?我认为 Django 建议的方法是改用
User = get_user_model()。 -
啊......我应该更清楚。我可以“创建”一个用户,但我不能将“书”添加到“entitledBooks”。它说“对象用户没有名为Books的属性”。我只能假设它正在创建原始用户而不是我的自定义用户。
标签: python django django-models