Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

360
Visualizações
Error de MakeMigration en Django - ImportError: no se puede importar el nombre 'FieldDoesNotExist' de 'django.db.models'

Recibí el siguiente error después de agregar un nuevo campo de modelo y ejecutar el comando makemigrations:

ImportError: no se puede importar el nombre 'FieldDoesNotExist' de 'django.db.models' (/usr/local/lib/python3.7/site-packages/django/db/models/ init .py)

así es como se ve mi models.py:

 import uuid from django.contrib.auth import get_user_model from django.db import models from django.urls import reverse # Create your models here. class Book(models.Model): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) title = models.CharField(max_length=200) author = models.CharField(max_length=200) price = models.DecimalField(max_digits=6, decimal_places=2) cover = models.ImageField(upload_to='covers/', blank=True) # New Field def __str__(self): return self.title def get_absolute_url(self): return reverse('book_detail', args=[str(self.id)]) class Review(models.Model): book = models.ForeignKey(Book, on_delete=models.CASCADE, related_name='reviews') review = models.CharField(max_length=255) author = models.ForeignKey(get_user_model(), on_delete=models.CASCADE) def __str__(self): return self.review

Este es el estado actual de mis archivos de migraciones, tengo dos. 0001_inicial.py

 # Generated by Django 3.0.8 on 2020-08-01 13:11 from django.db import migrations, models import uuid class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='Book', fields=[ ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('title', models.CharField(max_length=200)), ('author', models.CharField(max_length=200)), ('price', models.DecimalField(decimal_places=2, max_digits=6)), ], ), ]

0002_revisión.py

 # Generated by Django 3.0.8 on 2020-08-06 11:21 from django.conf import settings from django.db import migrations, models import django.db.models.deletion class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('books', '0001_initial'), ] operations = [ migrations.CreateModel( name='Review', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('review', models.CharField(max_length=255)), ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ('book', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='reviews', to='books.Book')), ], ), ]

Este es el rastreo de excepción después de ejecutar el comando makemigration:

 Exception in thread django-main-thread: web_1 | Traceback (most recent call last): web_1 | File "/usr/local/lib/python3.7/threading.py", line 926, in _bootstrap_inner web_1 | self.run() web_1 | File "/usr/local/lib/python3.7/threading.py", line 870, in run web_1 | self._target(*self._args, **self._kwargs) web_1 | File "/usr/local/lib/python3.7/site-packages/django/utils/autoreload.py", line 53, in wrapper web_1 | fn(*args, **kwargs) web_1 | File "/usr/local/lib/python3.7/site-packages/django/core/management/commands/runserver.py", line 110, in inner_run web_1 | autoreload.raise_last_exception() web_1 | File "/usr/local/lib/python3.7/site-packages/django/utils/autoreload.py", line 76, in raise_last_exception web_1 | raise _exception[1] web_1 | File "/usr/local/lib/python3.7/site-packages/django/core/management/__init__.py", line 357, in execute web_1 | autoreload.check_errors(django.setup)() web_1 | File "/usr/local/lib/python3.7/site-packages/django/utils/autoreload.py", line 53, in wrapper web_1 | fn(*args, **kwargs) web_1 | File "/usr/local/lib/python3.7/site-packages/django/__init__.py", line 24, in setup web_1 | apps.populate(settings.INSTALLED_APPS) web_1 | File "/usr/local/lib/python3.7/site-packages/django/apps/registry.py", line 114, in populate web_1 | app_config.import_models() web_1 | File "/usr/local/lib/python3.7/site-packages/django/apps/config.py", line 211, in import_models web_1 | self.models_module = import_module(models_module_name) web_1 | File "/usr/local/lib/python3.7/importlib/__init__.py", line 127, in import_module web_1 | return _bootstrap._gcd_import(name[level:], package, level) web_1 | File "<frozen importlib._bootstrap>", line 1006, in _gcd_import web_1 | File "<frozen importlib._bootstrap>", line 983, in _find_and_load web_1 | File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked web_1 | File "<frozen importlib._bootstrap>", line 677, in _load_unlocked web_1 | File "<frozen importlib._bootstrap_external>", line 728, in exec_module web_1 | File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed web_1 | File "/usr/local/lib/python3.7/site-packages/allauth/account/models.py", line 14, in <module> web_1 | from .adapter import get_adapter web_1 | File "/usr/local/lib/python3.7/site-packages/allauth/account/adapter.py", line 31, in <module> web_1 | from ..utils import ( web_1 | File "/usr/local/lib/python3.7/site-packages/allauth/utils.py", line 15, in <module> web_1 | from django.db.models import FieldDoesNotExist, FileField web_1 | ImportError: cannot import name 'FieldDoesNotExist' from 'django.db.models' (/usr/local/lib/python3.7/site-packages/django/db/models/__init__.py)

Entonces, no sé qué causó exactamente este error y estoy atascado en esta etapa. Cualquier ayuda sería muy apreciada.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Su versión de django-allauth tiene una importación incorrecta para FieldDoesNotExist . La importación correcta es:

 from django.core.exceptions import FieldDoesNotExist

La importación de django.db.models presumiblemente funcionó en versiones anteriores de Django.

Se corrigió la importación en django-allauth en la versión 0.41.0. Si actualiza django-allauth en sus requirements.txt o pipenv, debería solucionar el problema.

over 4 years ago · Santiago Trujillo Relatório

0

En mi caso, Django version 3.1.3 entró en conflicto con django-filter 2.0.0 .

Mensaje de error similar. Pero las últimas líneas de error decían que era graphene-django . Sin embargo, en el medio, dice django-filter . Cuando investigué el archivo fuente django-filter , hubo una importación incorrecta de FieldDoesNotExist . Cuando actualizo django-filter a la version 2.4.0 , problema resuelto.

over 4 years ago · Santiago Trujillo Relatório

0

En el caso de OP fue django-allauth, en mi caso django-filter.

Verifique la última línea en el registro de errores que muestra el archivo en el que from django.db.models import FieldDoesNotExist, FileField se importa FileField e intente actualizar ese paquete.

En el caso de OP, la línea de registro de errores fue esta:

File "/usr/local/lib/python3.7/site-packages/allauth/utils.py"...

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda