我想用我的自定義模型擴展用戶模型:GAE的Django nonrel從它繼承這樣的擴展用戶模型
class Profile(User):
...
我想我的自定義字段添加到用戶模式,但Django的nonrel失敗與錯誤:
DatabaseError: Multi-table inheritance is not supported by non-relational DBs.
所以,我怎樣才能解決這個問題?我絕對需要用戶模型中的自定義字段。
我想用我的自定義模型擴展用戶模型:GAE的Django nonrel從它繼承這樣的擴展用戶模型
class Profile(User):
...
我想我的自定義字段添加到用戶模式,但Django的nonrel失敗與錯誤:
DatabaseError: Multi-table inheritance is not supported by non-relational DBs.
所以,我怎樣才能解決這個問題?我絕對需要用戶模型中的自定義字段。
而不是覆蓋用戶模型,你應該創建包含附加字段另一個類,並通過1對1的關係綁定到用戶模型。
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中這樣做。如果你想在你的模型中有關係。你應該以這樣一種方式取消你的模型,使得appengine的方式可以達到同樣的效果。要了解更多關於appengine建模的知識。你可以通過以下鏈接。
我想request.user對象是普通的用戶對象,但添加了字段。接受的答案不允許這樣做,因爲UserProfile具有成員「用戶」而不是用戶。
This article解釋瞭如何從用戶繼承。
在簡短的步驟:
有沒有試過繼承。
在django-nonrel中,你只能從抽象類繼承模型(這是因爲如果你在Django中繼承模型,創建並連接JOIN,你顯然不能在django-nonrel中做) – LXj 2011-12-28 13:09:40
好的,謝謝你,但你的答案與普通的GAE方式有關,而不是django-nonrel – dragoon 2011-04-07 13:27:43