Estou perdendo o juízo. Depois de uma dúzia de horas de solução de problemas, provavelmente mais, pensei que finalmente estava no negócio, mas então:
Model class django.contrib.contenttypes.models.ContentType doesn't declare an explicit app_label
Há MUITAS informações sobre isso na web, e nenhuma solução por aí resolveu meu problema. Qualquer conselho seria extremamente apreciado.
Estou usando Python 3.4 e Django 1.10.
De minhas configurações.py:
INSTALLED_APPS = [
'DeleteNote.apps.DeletenoteConfig',
'LibrarySync.apps.LibrarysyncConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
E meus arquivos apps.py são assim:
from django.apps import AppConfig
class DeletenoteConfig(AppConfig):
name = 'DeleteNote'
e
from django.apps import AppConfig
class LibrarysyncConfig(AppConfig):
name = 'LibrarySync'
python
django
python-3.x
Slbox
fonte
fonte
Respostas:
Você não está colocando o nome do seu aplicativo no arquivo de configurações? A
myAppNameConfig
é a classe padrão gerada em apps.py pelo comando .manage.py createapp myAppName . Onde myAppName é o nome do seu aplicativo.settings.py
Dessa forma, o arquivo de configurações descobre como você deseja chamar seu aplicativo. Você pode alterar sua aparência mais tarde no arquivo apps.py adicionando o seguinte código em
myAppName / apps.py
fonte
import django django.setup()
em meu settings.py para abaixo daINSTALLED_APPS
entrada.Recebo o mesmo erro e não sei como resolver este problema. Levei muitas horas para perceber que tenho um init.py no mesmo diretório que o manage.py do django.
Antes:
Depois de:
É bastante confuso que você receba este erro "não declara um app_label explícito". Mas excluir este arquivo init resolveu meu problema.
fonte
Eu tive exatamente o mesmo erro ao executar testes com PyCharm. Eu corrigi isso definindo explicitamente
DJANGO_SETTINGS_MODULE
a variável de ambiente. Se você estiver usando o PyCharm, basta clicar no botão Editar Configurações e escolher Variáveis de Ambiente .Defina a variável como
your_project_name.settings
e isso deve corrigir a coisa.Parece que esse erro ocorre, porque o PyCharm executa testes com o seu próprio
manage.py
.fonte
DJANGO_SETTINGS_MODULE
para cada nova configuração de execução de teste do Django e Django.DJANGO_SETTINGS_MODULE
pela primeira vez quando eu cliqueiApply
em seguidaOK
. Eu fiz isso pela segunda vez e agora funciona. Parece um pouco estranho do PyCharm.<app>.<module> import <class>
-PyCharm auto import estava faltando<app>
. Depois de corrigir isso (também verifiquei os módulos dependentes), funcionou bem.Eu ganhei este quando usei o
./manage.py shell
então importei acidentalmente do diretório raiz do nível do projetofonte
from fields import x
parafrom .fields import x
como novato usando Python3 , acho que pode ser um erro de importação em vez de um erro de Django
errado:
certo:
isso aconteceu há alguns dias, mas eu realmente não consigo reproduzir ... Acho que apenas pessoas novas no Django podem encontrar isso. aqui está o que eu lembro:
tente registrar um modelo em admin.py:
tente executar o servidor, o erro parece com este
mudar
user
para.user
, problema resolvidofonte
Eu tive o mesmo problema agora. Eu consertei o meu adicionando um namespace ao nome do aplicativo. Espero que alguém ache isso útil.
apps.py
fonte
Recebi este erro ao importar modelos em testes, ou seja, dada esta estrutura de projeto Django:
no arquivo
test_models.py
que importeiMyModel
desta forma:O problema foi corrigido se for importado desta forma:
Espero que isto ajude!
PS: Talvez seja um pouco tarde, mas não encontrei em outras pessoas como resolver esse problema no meu código e quero compartilhar minha solução.
fonte
from .models import MyModel
. Mudar parafrom myapp.models import MyModel
corrigiu o problema.Depois de continuar encontrando esse problema e sempre voltando a essa pergunta, pensei em compartilhar qual era o meu problema.
Tudo o que @Xeberdee está correto, então siga e veja se isso resolve o problema, se não era esse o meu problema:
No meu apps.py isto é o que eu tinha:
E tudo o que fiz foi adicionar o nome do projeto na frente do nome do meu aplicativo assim:
e isso resolveu meu problema e eu fui capaz de executar o comando makemigrations e migrate depois disso! boa sorte
fonte
Tive este erro hoje ao tentar executar testes do Django porque estava usando a
from .models import *
sintaxe abreviada em um dos meus arquivos. O problema era que eu tinha uma estrutura de arquivo assim:e
models/__init__.py
estava importando meus modelos usando a sintaxe abreviada:No meu aplicativo, importava modelos assim:
Isso causou o
Django model doesn't declare an explicit app_label
quando em execução./manage.py test
.Para corrigir o problema, tive que importar explicitamente do caminho completo em
models/__init__.py
:Isso resolveu o erro.
H / t https://medium.com/@michal.bock/fix-weird-exceptions-when-running-django-tests-f58def71b59a
fonte
No meu caso, isso estava acontecendo porque eu usei um caminho de módulo relativo em urls.py no nível do projeto ,
INSTALLED_APPS
e emapps.py
vez de ter o root na raiz do projeto. isto é, caminhos de módulo absolutos por toda parte, em vez de caminhos de módulos relativos + hacks.Não importa o quanto eu errei com os caminhos em
INSTALLED_APPS
eapps.py
em meu aplicativo, eu não poderia obter tantorunserver
epytest
ao trabalho até que todos os três daqueles foram enraizado na raiz do projeto.Estrutura da pasta:
Com o seguinte, eu poderia executar
manage.py runserver
e gunicorn com wsgi e usarportal
visualizações de aplicativos sem problemas, mas pytest apresentaria um erroModuleNotFoundError: No module named 'apps'
apesar deDJANGO_SETTINGS_MODULE
estar configurado corretamente.config / settings.py:
biz_portal / apps / portal / apps.py:
config / urls.py:
Alterar a referência do aplicativo em config / settings.py para
biz_portal.apps.portal.apps.PortalConfig
ePortalConfig.name
parabiz_portal.apps.portal
permitir a execução de pytest (não tenho testes paraportal
visualizações ainda), masrunserver
haveria erro comFinalmente, tentei
apps.portal
ver o que ainda estava usando um caminho relativo e descobri que config / urls.py também deveria usarbiz_portal.apps.portal.urls
.fonte
Encontrei este erro quando tentei gerar migrações para um único aplicativo que tinha migrações malformadas existentes devido a uma fusão git. por exemplo
Quando excluí suas migrações e executei:
o erro não ocorreu e as migrações geradas com sucesso.
fonte
Eu tive um problema semelhante, mas fui capaz de resolver o meu especificando explicitamente o app_label usando Meta Class em minha classe de modelos
fonte
Recebi este erro ao tentar atualizar meu aplicativo Django Rest Framework para DRF 3.6.3 e Django 1.11.1.
Para qualquer outra pessoa nessa situação, encontrei minha solução em um problema do GitHub , que era cancelar a
UNAUTHENTICATED_USER
definição das configurações do DRF :fonte
Eu apenas encontrei esse problema e descobri o que estava errado. Uma vez que nenhuma resposta anterior descreveu o problema como aconteceu comigo, pensei que poderia publicá-lo para outras pessoas:
python migrate.py startapp myApp
da pasta raiz do meu projeto e mover myApp para uma pasta filha commv myApp myFolderWithApps/
.python migrate.py makemigrations
. Tudo correu bem.myFolderWithApps.myApp
para fazer referência ao meu aplicativo, mas tinha esquecido de atualizar MyApp / apps.py. Então eu corrigi myApp / apps.py, settings / INSTALLED_APPS e meu caminho de importação no meu segundo aplicativo.Então, para encurtar a história: - o problema vinha inicialmente do nome do aplicativo errado em apps.py de myApp, nas configurações e no caminho de importação do meu segundo aplicativo. - mas não foi suficiente corrigir os caminhos nesses três lugares, pois as migrações foram criadas com importações referenciando o nome do aplicativo errado. Portanto, o mesmo erro continuou acontecendo durante a migração (exceto neste momento de migrações).
Então ... verifique suas migrações e boa sorte!
fonte
Recebi um erro semelhante ao construir uma API no Django rest_framework.
a resposta de luke_aus me ajudou corrigindo meu urls.py
de
para
fonte
No meu caso, recebi este erro ao portar o código do Django 1.11.11 para o Django 2.2. Eu estava definindo uma classe derivada de FileSystemStorage personalizada. No Django 1.11.11, eu tinha a seguinte linha em models.py:
e mais tarde no arquivo eu tinha a definição da classe:
No entanto, no Django 2.2, preciso referenciar explicitamente a
FileSystemStorage
classe ao importar:e voilà !, o erro desaparece.
Observe que todos estão relatando a última parte da mensagem de erro lançada pelo servidor Django. Porém, se você rolar para cima, encontrará o motivo no meio desse erro mambo-jambo.
fonte
no meu caso eu consegui encontrar uma correção e olhando para o código de todos os outros pode ser o mesmo problema .. Eu simplesmente tive que adicionar 'django.contrib.sites' à lista de aplicativos instalados no settings.py Arquivo.
espero que isso ajude alguém. esta é minha primeira contribuição para a comunidade de codificação
fonte
TL; DR: Adicionando um __init__.py em branco corrigiu o problema para mim.
Recebi este erro no PyCharm e percebi que meu arquivo de configurações não estava sendo importado. Não houve nenhum erro óbvio ao me dizer isso, mas quando coloquei um código sem sentido no settings.py, não ocorreu um erro.
Eu tinha settings.py dentro de uma pasta local_settings . No entanto, eu não tentei incluir um __init__.py na mesma pasta para permitir que ele seja importado. Depois de adicionar isso, o erro foi embora.
fonte
Se você acertou toda a configuração, pode ser apenas uma bagunça de importação. fique de olho em como você está importando o modelo ofensivo.
O seguinte não funcionará
from .models import Business
. Em vez disso, use o caminho de importação completo:from myapp.models import Business
fonte
Se tudo mais falhar, e se você estiver vendo este erro ao tentar importar em um "console Python" PyCharm (ou "console Django"):
Tente reiniciar o console.
Isso é muito embaraçoso, mas demorei um pouco para perceber que havia esquecido de fazer isso.
Eis o que aconteceu:
Adicionou um novo aplicativo, adicionou um modelo mínimo e tentou importar o modelo no console Python / Django (PyCharm pro 2019.2). Isso gerou o
doesn't declare an explicit app_label
erro, porque eu não adicionei o novo aplicativo aoINSTALLED_APPS
. Então, adicionei o aplicativo aoINSTALLED_APPS
, tentei importar novamente, mas ainda obtive o mesmo erro.Vim aqui, leia todas as outras respostas, mas nada parecia se encaixar.
Por fim, percebi que ainda não havia reiniciado o console Python após adicionar o novo aplicativo ao
INSTALLED_APPS
.Nota: deixar de reiniciar o console PyCharm Python, depois de adicionar um novo objeto a um módulo, também é uma ótima maneira de obter uma
ImportError: Cannot import name ...
fonte
.env
arquivo e estava fazendo o possível para fazer as coisas funcionarem com uma configuração obsoleta: /O ... M ... G Eu estava recebendo esse erro também e passei quase 2 dias nele e agora finalmente consegui resolver. Sinceramente ... o erro não teve nada a ver com qual era o problema. No meu caso, foi uma simples questão de sintaxe. Eu estava tentando executar um módulo python autônomo que usava alguns modelos django em um contexto django, mas o módulo em si não era um modelo django. Mas eu estava declarando a classe errada
ao invés de ter
eu estava fazendo
o que está obviamente errado. A mensagem é tão enganosa que não pude evitar, mas pensei que era algum problema com a configuração ou apenas usando o django de forma errada, já que sou muito novo nele.
Vou compartilhar isso aqui para alguém novato, pois eu, passando pela mesma tolice, posso resolver o problema.
fonte
Recebi este erro depois de mover o
SECRET_KEY
para extrair de uma variável de ambiente e esqueci de defini-lo ao executar o aplicativo. Se você tem algo assim em seusettings.py
em seguida, certifique-se de que está definindo a variável de ambiente.
fonte
Muito provavelmente você tem importações dependentes .
No meu caso, usei uma classe de serializador como um parâmetro em meu modelo, e a classe de serializador estava usando este modelo: serializer_class = AccountSerializer
E no arquivo "serializadores":
fonte
Recebi este erro hoje e acabei aqui depois de pesquisar no Google. Nenhuma das respostas existentes parece relevante para minha situação. A única coisa que precisei fazer foi importar um modelo do meu
__init__.py
arquivo no nível superior de um aplicativo. Tive que mover minhas importações para as funções usando o modelo.Django parece ter algum código estranho que pode falhar assim em muitos cenários diferentes!
fonte
Eu tenho esse erro também hoje. A mensagem referenciada a algum aplicativo específico de meus aplicativos no INSTALLED_APPS . Mas, na verdade, não tinha nada a ver com este aplicativo específico. Usei um novo Ambiente virtual e esqueci de instalar algumas Bibliotecas, que usei neste projeto. Depois de instalar as bibliotecas adicionais, funcionou.
fonte
Para usuários do PyCharm: Ocorreu um erro ao usar a estrutura do projeto não "limpa".
Foi:
Agora:
Aqui estão muitas soluções boas, mas eu acho que, antes de tudo, você deve limpar a estrutura do seu projeto ou ajustar as configurações do PyCharm Django antes de definir
DJANGO_SETTINGS_MODULE
variáveis e assim por diante.Espero que ajude alguém. Felicidades.
fonte
O problema é que:
Você fez modificações em seu arquivo de modelos, mas não os adicionou ainda ao banco de dados, mas está tentando executar Python manage.py runserver.
Execute Python manage.py makemigrations
Python manage.py migrate
Agora Python manage.py runserver e tudo deve ficar bem.
fonte