PDA

View Full Version : [Django] problema di importazione di una classe


Herod2k
04-08-2011, 11:15
Allora sto sviluppando un sito con Django 1.3 e lo sto provando con il server interno (non Apache o altro)
oggi è sorto un problema che non riesco a risolvere.
Allora ho un Model che si chiama Message definito in un applicazione che ha un ForeignKey a un'altro Modello che sta in un'altra applicazione.

per poterlo richiamare dal modello lo importo ad inizio pagina

from userprofile.models import UserProfile

se lo faccio, se metto questa riga, impazzisce tutto, il comando runserver si pianta e mi segnala tutti gli import di UserProfile (ne ho diversi in diveri punti)
come se userprofile non fosse un app registrata :muro: come se non riuscisse a trovare l'app da dove prendere il modello.
se invece faccio cosi:
from userprofile.models import *
funziona tutto perfettamente posso usare UserProfile nel codice senza problemi... :muro:

da shell di django tutto ok.
Python 2.7 (r27:82525, Jul 4 2010, 09:01:59) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from userprofile.models import UserProfile
>>>

qualche idea? per ora posso proseguire a programmare mettendo *, pero mi sa di rappezzato.

Grazie

H2K

Herod2k
04-08-2011, 11:39
scusa mi correggo, se metto:
from userprofile.models import *
non mi da errore pero come richiamo UserProfile mi dice:
NameError: name 'UserProfile' is not defined

mi sono anche accorto che lo fa con tutti i modelli contenuti in userprofile.models, se ne richiamo un'altro è stessa identica cosa e lo fa solo da questa specifica pagina, tutti i richiami a userprofile.models delle altre pagine funzionano bene.

C'è un modo per vedere quali classi importa from userprofile.models import * ?

H2K

P.s. scusate il doppio post.

Herod2k
04-08-2011, 14:51
Ok, risolto, i 2 modelli erano ricorsivi tra di loro e ho dovuto usare questo:
https://docs.djangoproject.com/en/1.3/ref/models/fields/#lazy-relationships

Spero possa tornare utile a qualcun'altro.

H2K