Tive um problema onde ao executar o comando abaixo, o sistema nao reconhecia o model novo
python manage.py makemigrations
Resultado comando acima:
(.venv)~/.../lib_s/django_s$ python manage.py makemigrations
No changes detected
(.venv)~/.../lib_s/django_s$
O models foi criado assim:
from django.db import models
class Fotografia (models.Model):
nome = models.CharField(max_length=100, null=False, blank=False)
legenda = models.CharField(max_length=150, null=False, blank=False)
descricao = models.TextField(null=False, blank=False)
foto = models.CharField(max_length=150, null=False, blank=False)
def __init__ (self):
return f"Fotografia [nome={self.nome}]"
Como eu tinha certeza que o model era novo, eu forcei o python reconhecer atualizacao apenas do APP (galeria) e funcionou:
(.venv)~/.../lib_s/django_s$ python manage.py makemigrations galeria
Migrations for 'galeria':
galeria/migrations/0001_initial.py
- Create model Fotografia
(.venv)~/.../lib_s/django_s$
Agora vamos para o motivo:
1 ) No meu caso o settings.py estava correto, ou seja o atributo INSTALLED_APPS
continha o valor do nome do meu projeto [ .... 'galeria', ]
. Minha sugestao e que voce olhe se realmente esta correto no seu projeto, uma vez que o comando python manage.py makemigrations
verifica a estrutura de todos os APPs criados e se nao localiza um dos motivos pode esta ai.
2 ) Outro fator que era o meu caso , como uso o git e estudo em diferentes computadores, geralmente fico tranferindo meu codigo para outros lugares e diferente versoes de sistema operacional, isso gerou "cache" e o django nao reconheceu as alteracoes. apra resolver , apaguei os dados antigos:
rm -rf meu_app/migrations/
python manage.py makemigrations
python manage.py migrate
Espero ter ajudado
Valeu