2014-02-07 35 views
0

我正在嘗試在我的Flask應用程序工作中進行註冊。我已經創建了兩個角色(「管理員」和「用戶」)和一個管理員(我)沒有任何問題。然而,當我試圖通過註冊頁面註冊一個新用戶,我得到以下錯誤:Flask-security:註冊處理呈現user.role_id可能不是NULL錯誤

user.role_id may not be NULL 

模式(標準快速入門): 類角色(db.Model,RoleMixin): 名= CharField(獨特= TRUE) 描述=文本字段(空=真)

class User(db.Model, UserMixin): 
    email = TextField() 
    password = TextField() 
    active = BooleanField(default=True) 
    confirmed_at = DateTimeField(null=True) 

class UserRoles(db.Model): 
    # Because peewee does not come with built-in many-to-many 
    # relationships, we need this intermediary class to link 
    # user to roles. 
    user = ForeignKeyField(User, related_name='roles') 
    role = ForeignKeyField(Role, related_name='users') 
    name = property(lambda self: self.role.name) 
    description = property(lambda self: self.role.description) 

我真的不明白這何處來自。首先,您不需要爲新用戶分配角色,其次,由於「角色」是外鍵,因此獲取用戶角色ID的正確方法是user.role.id而不是user.role_id

回答

0

它看起來像你可能有一個role外鍵在你的用戶表上的一個點,但也許你刪除它?如果您不再使用它,您可能需要更改您的表格以刪除該列。