我想创建一个经过身份验证的django用户模型,我基本上按照本网站中的步骤操作: http://www.micahcarrick.com/django-email-authentication.html 并且还在managmenet模块的post_syncdb函数中包含表更改代码,以使电子邮件成为唯一标识符。这应该适用于MySql。但是,它不适用于sqlite。这是因为sqlite的表更改是有限的,不允许您更改该属性或甚至添加具有唯一标识符的列。
如果没有优雅的方法,那么我可能不得不切换到MySql。
答案 0 :(得分:0)
http://www.sqlite.org/faq.html#q26
因此,它完全支持UNIQUE,但您无法使用UNIQUE更改表。因此,将表转储到具有UNIQUE约束的新表,然后更改并重命名表。或者只是转储它,修改转储并重新导入它。
答案 1 :(得分:0)
我认为,在post_syncdb挂钩中,您可以添加:
cursor.execute(
"CREATE UNIQUE INDEX IF NOT EXISTS auth_user_email_unique "
"ON auth_user (email COLLATE NOCASE);"
)
您可能需要根据settings.DATABASES['default']['ENGINE']