我想创建一个经过电子邮件认证的django用户模型,我基本上遵循了这个网站上的步骤:http://www.micahcarrick.com/django-email-authentication.html,还在一个managmenet模块的post_syncdb函数中包含了表格修改代码,以使电子邮件成为唯一标识符。这应该可以在MySql上正常工作。但是,它不适用于sqlite。这是因为sqlite的表更改是有限的,并且不允许您更改该属性,甚至不允许添加具有唯一标识符的列。
如果没有很好的方法来做到这一点,那么我可能不得不切换到MySql。
发布于 2011-10-15 10:34:57
http://www.sqlite.org/faq.html#q26
因此,它是完全支持唯一的,但您不能使用UNIQUE更改表。因此,将表转储到具有UNIQUE约束的新表中,然后更改并重命名这些表。或者只是转储它,修改转储并重新导入它。
发布于 2012-12-12 09:19:28
我认为,在您的post_syncdb钩子中,您可以添加:
cursor.execute(
"CREATE UNIQUE INDEX IF NOT EXISTS auth_user_email_unique "
"ON auth_user (email COLLATE NOCASE);"
)您可能需要根据settings.DATABASES['default']['ENGINE']划分不同的块
https://stackoverflow.com/questions/7775267
复制相似问题