Django-registration-redux и ложная миграция из DEFAULT_AUTO_FIELD BigAutoField
Я установил django-registration-redux 2.11 в Django 4.1.6.
Когда я запускаю makemigrations
, он делает миграцию для изменения поля id на BigAutoField
:
# Generated by Django 4.1.6 on 2023-02-03 19:33
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("registration", "0005_activation_key_sha256"),
]
operations = [
migrations.AlterField(
model_name="registrationprofile",
name="id",
field=models.BigAutoField(
auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
),
),
]
Я подозреваю, что это потому, что DEFAULT_AUTO_FIELD теперь BigAutoField, начиная с Django 3.2, см. здесь.
Однако, он создает миграцию в моем virtualenv, а не под контролем исходного кода:
$ ./manage.py makemigrations
Migrations for 'registration':
.venv/lib/python3.10/site-packages/registration/migrations/0006_alter_registrationprofile_id.py
- Alter field id on registrationprofile
Так что ничего хорошего из этого не выйдет.
Я не хочу менять DEFAULT_AUTO_FIELD на AutoField
. Я просто хочу изменить его для django-registration-redux?
Я вижу, что регистрация уже есть default_auto_field = 'django.db.models.AutoField'
, поэтому я озадачен, почему Django делает этот переход.
Я попробовал добавить свой собственный registration/apps.py
в контроль исходного кода с default_auto_field
в качестве AutoField
, и это не сработало.
Предложения?
Возможно, мне просто придется перейти на django-allauth
или вернуться на django-registration
, как они предлагают .
Я вижу, что регистрация уже имеет
default_auto_field = 'django.db.models.AutoField'
, поэтому я озадачен, почему Django делает этот переход.
Причина, по которой default_auto_field
скорее всего не будет работать, заключается в том, что она определена в model, а не в конфигурации приложения.
Я пробовал добавлять свои собственные
registration/apps.py
в контроль исходного кода сdefault_auto_field
какAutoField
, и это не сработало.
Это будет работать... на вашем приложении registration
, так что модели определены в этом приложении, а не в других приложениях.
Likely the best way to fix this is to fix it on the package itself, by specifying an AppConfig
that then defines, for the scope of that package, the default_auto_field
. I submitted a pull request (#431) [GitHub] for this.