我可以在auth.User中制作电子邮件,first_name,last_name和用户名有多大?

时间:2012-03-11 21:28:07

标签: django postgresql django-south

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

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

我在PostgreSQL上使用Django 1.3.1Heroku

以下是我打算运行的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))

1 个答案:

答案 0 :(得分: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(基于该问题)

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