quarta-feira, 29 de julho de 2015

Calling modelformset_factory without defining 'fields' or 'exclude' explicitly is prohibited.

Para todos que pegarem o erro Calling modelformset_factory without defining 'fields' or 'exclude' explicitly is prohibited, basta fazer uma pequena alteração no inlineformset_factory
para resolver.

Altere seu forms.py de:

FotoFormSet = inlineformset_factory(Bloco, Foto, extra=1)


Para:

FotoFormSet = inlineformset_factory(Bloco, Foto, fields='__all__', extra=1)


hasta!

terça-feira, 21 de julho de 2015

django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.

Precisa escrever um script em python e fazer uso do Django para automatizar algo pela cron?

Na versão atual do django, quando fazemos isso igual nas versões mais antigas, tipo 1.4 até 1.6, recebmos o erro:

django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.


Para resolver isso, deixe seu script python como a seguir:

#!/usr/bin/env python
# coding: utf-8

from os.path import abspath, dirname

SETTINGS_DIRECTORY = dirname(dirname(abspath(__file__)))

sys.path.insert(0, SETTINGS_DIRECTORY)
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django
django.setup()


def sincorniza_busca():
 from django.template.defaultfilters import striptags

 # importe seus models aqui
 from sua_app.models import SeuModel

 # faça o que tiver que fazer aqui



if __name__ == '__main__':
 sua_funcao()



hasta!

sexta-feira, 12 de junho de 2015

AppRegistryNotReady: The translation infrastructure cannot be initialized before the apps registry is ready


Dê uma olhada em seu arquivo wsgi que carrega os módulos e apps. O erro acima é muito comum a partir do Django 1.7

Troque:
module = django.core.handlers.wsgi:WSGIHandler()



Por:
module = get_wsgi_application()



Exemplo:

import sys, os

sys.path.append(os.getcwd())

# CONFIGURACAO PARA ENV
sys.path.insert(0,'<CAMINHO PARA SEU ENV>/ENV/bin')
sys.path.insert(0,'/<CAMINHO PARA SEU ENV>/ENV/lib/python2.7/site-packages')
# -------------------------

sys.path.insert(1, "/<CAMINHO PARA SEU PROJETO>/app")
os.environ['DJANGO_SETTINGS_MODULE'] = 'app.settings'
import django.core.handlers.wsgi

#application = django.core.handlers.wsgi.WSGIHandler()

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()