我正在尝试使用我的自定义模型扩展用户模型,方法是继承它:
class Profile(User):
...
我想将自定义字段添加到User模型,但django nonrel失败并显示错误:
DatabaseError: Multi-table inheritance is not supported by non-relational DBs.
那我怎么解决这个问题呢?我绝对需要用户模型中的自定义字段。
答案 0 :(得分:2)
您应该创建另一个包含其他字段并通过一对一关系将其绑定到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)
...
...
答案 1 :(得分:1)
你不能在google-app-engine中做类似的事情。如果你想在你的模型中建立关系。您应该以这样的方式对您的模型进行denormailse,以便以appengine的方式实现相同的目标。要了解有关appengine建模的更多信息。您可以浏览以下链接。
答案 2 :(得分:1)
我希望request.user对象是普通的User对象,但是添加了字段。接受的答案不允许这样做,因为UserProfile有一个成员“user”而不是用户。
This article解释了如何从用户继承。
简述步骤:
尚未尝试过。