【问题标题】:How big can I make email, first_name, last_name and username in auth.User?我可以在 auth.User 中创建多大的电子邮件、名字、姓氏和用户名?
【发布时间】:2012-03-28 09:05:48
【问题描述】:

我今天失去了一个用户:(

一个用户试图注册我的网站,他的电子邮件大于75 characters(Django 的auth.User 默认),我正在进行迁移以解决这个问题,但我想知道,我可以让这个专栏有多大无需担心performance|storage|memory 问题?

我在Heroku 上使用PostgreSQLDjango 1.3.1

这是我打算运行的 South 迁移:

class Migration(SchemaMigration):

    def forwards(self, orm):
        # Changing User.username, User.email, User.first_name and User.last_name
        # to bigger fields
        db.alter_column('auth_user', 'username', models.CharField(max_length=255, unique=True))
        db.alter_column('auth_user', 'email', models.CharField(max_length=255, blank=True))
        db.alter_column('auth_user', 'first_name', models.CharField(max_length=255, blank=True))
        db.alter_column('auth_user', 'last_name', models.CharField(max_length=255, blank=True))

    def backwards(self, orm):
        db.alter_column('auth_user', 'username', models.CharField(max_length=30, unique=True))
        db.alter_column('auth_user', 'email', models.CharField(max_length=75, blank=True))
        db.alter_column('auth_user', 'first_name', models.CharField(max_length=30, blank=True))
        db.alter_column('auth_user', 'last_name', models.CharField(max_length=30, blank=True))

【问题讨论】:

标签: django postgresql django-south


【解决方案1】:

仅使用迁移会留下与表单验证、django.contrib.admin 等相关的问题。

您可以在这里看到非常相似的问题:Can django's auth_user.username be varchar(75)? How could that be done?

还有一个包可以用来扩展用户名字段:https://github.com/GoodCloud/django-longer-username(基于那个问题)

您也可以扩展该包中的代码以扩展电子邮件字段(因为它仅扩展用户名字段)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-05
    • 2013-08-20
    • 2021-12-06
    • 2011-12-16
    • 2022-01-25
    • 2017-03-05
    • 2021-10-26
    • 2023-04-03
    相关资源
    最近更新 更多