我正在尝试通过像这样继承自定义模型来扩展用户模型:
class Profile(User):
...
我想将我的自定义字段添加到用户模型,但 django nonrel 失败并出现错误:
DatabaseError: Multi-table inheritance is not supported by non-relational DBs.
那么我该如何解决这个问题呢?我绝对需要用户模型中的自定义字段。
我正在尝试通过像这样继承自定义模型来扩展用户模型:
class Profile(User):
...
我想将我的自定义字段添加到用户模型,但 django nonrel 失败并出现错误:
DatabaseError: Multi-table inheritance is not supported by non-relational DBs.
那么我该如何解决这个问题呢?我绝对需要用户模型中的自定义字段。
您应该创建另一个包含附加字段并通过一对一关系将其绑定到 User 模型的类,而不是覆盖 User 模型。
from django.contrib.auth.models import User
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
nickname = models.CharField(max_length=50)
...
...
你不能在 google-app-engine 中做类似的事情。如果你想在你的模型中建立关系。您应该以这样一种方式对您的模型进行 denormailse 处理,以便在 appengine 的方式中实现相同的效果。要了解有关在 appengine 中建模的更多信息。您可以浏览以下链接。
我希望 request.user 对象成为普通的 User 对象,但添加了字段。接受的答案不允许这样做,因为 UserProfile 有一个成员“用户”而不是用户。
本文解释了如何改为从 User 继承。
简要步骤:
还没试过。