Se inizio Python dalla riga di comando e digitare:python random.Random() fa sì che " 'modulo' oggetto non è callable" quando viene utilizzato in tag modello personalizzato
import random
print "Random: " + str(random.random())
Mi stampare un numero casuale (Previsto, eccellente).
Se includo i suddetti due linee in models.py della mia applicazione Django e inizio la mia app Django con runserver ho l'uscita sulla riga di comando mostrandomi un numero casuale (Grande!)
Se prendo un tag personalizzato che funziona perfettamente bene altrimenti, ma includo
import random
print "Random: " + str(random.random())
come le prime 2 righe del file .py del tag personalizzato, ottengo un errore ogni volta che provo ad aprire un modello che utilizza questo tag personalizzato:
TypeError at /help/
'module' object is not callable
Si prega di tenere presente che se mi libero di queste due linee, il mio tag personalizzato si comporta come altrimenti previsto e nessun errore viene generato. Sfortunatamente, ho bisogno di un comportamento casuale all'interno del mio modello di tag.
Il problema è che se in un tag personalizzato che faccio:
import random
su un tag modello personalizzato, importa
<module 'django.templatetags.random' from '[snip path]'>
e non
<module 'random' from 'C:\\Program Files\\Python26\\lib\\random.pyc'>
come normalmente importati da ogni altra parte
La libreria di template di Django ha un filtro chiamato random, e in qualche modo ha priorità sul sistema.
Qualcuno può consigliare come importare in modo esplicito il python corretto casuale?
provare: 'dall'importazione casuale casuale' – jfs