安装Django Crispy Forms后执行makemigrations遇ModuleNotFoundError求助
问题描述
执行makemigrations时出现如下错误:
Traceback (most recent call last): File "/home/javier/Desktop/pd110/lib/python3.10/site-packages/django/db/models/options.py", line 275, in _get_default_pk_class pk_class = import_string(pk_class_path) File "/home/javier/Desktop/pd110/lib/python3.10/site-packages/django/utils/module_loading.py", line 30, in import_string return cached_import(module_path, class_name) File "/home/javier/Desktop/pd110/lib/python3.10/site-packages/django/utils/module_loading.py", line 15, in cached_import module = import_module(module_path) File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 992, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlocked ModuleNotFoundError: No module named 'django.Falsedb' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/javier/Desktop/pd110/src/manage.py", line 22, in <module> main() File "/home/javier/Desktop/pd110/src/manage.py", line 18, in main execute_from_command_line(sys.argv) File "/home/javier/Desktop/pd110/lib/python3.10/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line utility.execute() File "/home/javier/Desktop/pd110/lib/python3.10/site-packages/django/core/management/__init__.py", line 436, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/javier/Desktop/pd110/lib/python3.10/site-packages/django/core/management/base.py", line 412, in run_from_argv self.execute(*args, **cmd_options) File "/home/javier/Desktop/pd110/lib/python3.10/site-packages/django/core/management/base.py", line 458, in execute output = self.handle(*args, **options) File "/home/javier/Desktop/pd110/lib/python3.10/site-packages/django/core/management/base.py", line 106, in wrapper res = handle_func(*args, **kwargs) File "/home/javier/Desktop/pd110/lib/python3.10/site-packages/django/core/management/commands/makemigrations.py", line 156, in handle loader.check_consistent_history(connection) File "/home/javier/Desktop/pd110/lib/python3.10/site-packages/django/db/migrations/loader.py", line 313, in check_consistent_history applied = recorder.applied_migrations() File "/home/javier/Desktop/pd110/lib/python3.10/site-packages/django/db/migrations/recorder.py", line 81, in applied_migrations if self.has_table(): File "/home/javier/Desktop/pd110/lib/python3.10/site-packages/django/db/migrations/recorder.py", line 59, in has_table return self.Migration._meta.db_table in tables File "/home/javier/Desktop/pd110/lib/python3.10/site-packages/django/utils/functional.py", line 71, in __get__ return self.fget(cls) File "/home/javier/Desktop/pd110/lib/python3.10/site-packages/django/db/migrations/recorder.py", line 32, in Migration class Migration(models.Model): File "/home/javier/Desktop/pd110/lib/python3.10/site-packages/django/db/models/base.py", line 365, in __new__ new_class._prepare() File "/home/javier/Desktop/pd110/lib/python3.10/site-packages/django/db/models/base.py", line 378, in _prepare opts._prepare(cls) File "/home/javier/Desktop/pd110/lib/python3.10/site-packages/django/db/models/options.py", line 329, in _prepare pk_class = self._get_default_pk_class() File "/home/javier/Desktop/pd110/lib/python3.10/site-packages/django/db/models/options.py", line 281, in _get_default_pk_class raise ImproperlyConfigured(msg) from e django.core.exceptions.ImproperlyConfigured: DEFAULT_AUTO_FIELD refers to the module 'django.Falsedb.models.BigAutoField' that could not be imported.
当前INSTALLED_APPS配置:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'crispy_forms', 'boletin', ]
此前迁移操作正常,已尝试在虚拟环境中重装Django 4.2.7和Crispy Forms,问题仍未解决。
解决方法
错误核心是DEFAULT_AUTO_FIELD配置存在笔误:配置值写成了django.Falsedb.models.BigAutoField,其中Falsedb为错误写法,正确路径应为django.db.models.BigAutoField。
- 打开项目根目录下的
settings.py文件 - 找到
DEFAULT_AUTO_FIELD配置行(若文件中无此配置则手动添加) - 修改为正确配置:
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
- 保存文件后,重新执行
makemigrations和migrate命令即可。
内容的提问来源于stack exchange,提问作者javi009
相关产品推荐
相关产品推荐

