如何在Django用户模型上延长用户名字段?

时间:2017-08-18 00:04:47

标签: python django heroku

我有一个部署在Heroku上的Django Web应用程序。我使用Django的用户模型进行身份验证。我的目标是将username字段从30个字符延长到100个字符。

我使用自己的User模型覆盖了默认的AbstractUser模型:

class AbstractUser(AbstractBaseUser, PermissionsMixin):
    username = models.CharField(
        _('username'),
        max_length=30,
        unique=True,
        help_text=_('Required. 100 characters or fewer. Letters, digits and @/./+/-/_ only.'),
        validators=[
            validators.RegexValidator(
                r'^[\w.@+-]+$',
                _('Enter a valid username. This value may contain only '
                  'letters, numbers ' 'and @/./+/-/_ characters.')
            ),
        ],
        error_messages={
            'unique': _("A user with that username already exists."),
        },
    )
    first_name = models.CharField(_('first name'), max_length=30, blank=True)
    last_name = models.CharField(_('last name'), max_length=30, blank=True)
    email = models.EmailField(_('email address'), blank=True)
    is_staff = models.BooleanField(
        _('staff status'),
        default=False,
        help_text=_('Designates whether the user can log into this admin site.'),
    )
    is_active = models.BooleanField(
        _('active'),
        default=True,
        help_text=_(
            'Designates whether this user should be treated as active. '
            'Unselect this instead of deleting accounts.'
        ),
    )
    date_joined = models.DateTimeField(_('date joined'), default=timezone.now)

我想将username字段的max_length从30更新为100.我可以在本地执行此操作而不会出现任何问题,只需将行max_length=30更新为max_length=100,即可运行{{ 1}}和python manage.py makemigrations

但是,迁移文件是在我的虚拟环境python manage.py migrate文件夹中创建的,因此我不确定将其部署到Heroku的位置。我通过(venv\Lib\site-packages\django\contrib\auth\migrations)文件排除了我的整个venv文件夹。我在Heroku上没有venv文件夹。

我应该在何处/如何部署迁移文件并将其应用于Heroku?

0 个答案:

没有答案