Django和sqlite电子邮件身份验证

时间:2011-10-15 02:03:36

标签: django sqlite email authentication

我想创建一个经过身份验证的django用户模型,我基本上按照本网站中的步骤操作: http://www.micahcarrick.com/django-email-authentication.html 并且还在managmenet模块的post_syncdb函数中包含表更改代码,以使电子邮件成为唯一标识符。这应该适用于MySql。但是,它不适用于sqlite。这是因为sqlite的表更改是有限的,不允许您更改该属性或甚至添加具有唯一标识符的列。

如果没有优雅的方法,那么我可能不得不切换到MySql。

2 个答案:

答案 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']

分解不同的区块