2015-03-06 15 views
5

Sembra che Django consenta di eseguire il codice all'avvio - quando l'app inizia, tuttavia, non è chiaro e dove dovrei inserire il codice. Quindi, come posso eseguire il codice all'avvio in Django 1.7?Esecuzione del codice all'avvio in Django 1.7

+0

Cosa intendi per "avvio"? Quando cosa inizia esattamente? – rnevius

+0

@rnevius, l'applicazione. –

risposta

11

per Django> = 1.7 è possibile utilizzare il AppConfig.ready() callback:

https://docs.djangoproject.com/en/dev/ref/applications/#django.apps.AppConfig.ready

Per le versioni precedenti, vedere this answer.

Se si utilizza il metodo AppConfig.ready():

1) Creare un modulo myapp/apps.py e sottoclasse l'AppConfig. Per esempio:

from django.apps import AppConfig 

class MyAppConfig(AppConfig): 
    name = 'myapp' 
    def ready(self): 
    ... 

2) Modifica myapp/__init__.py e registrare la vostra applicazione di configurazione:

default_app_config = 'myapp.apps.MyAppConfig' 

Vedi https://docs.djangoproject.com/en/1.7/ref/applications/#configuring-applications per i dettagli.

+0

Non è ancora chiaro. In quale file dovrei metterlo? Devo ereditare la mia classe da AppConfig? Potresti farmi un esempio? –

+0

Sì, si estenderà la classe 'AppConfig' in un modulo all'interno del pacchetto dell'applicazione. Vedere questa risposta per un'implementazione di esempio: http://stackoverflow.com/a/22924754/2011147 – Selcuk

+0

Ancora non chiaro. Perché il file si chiama 'signals.py', dove è collocato? –

Problemi correlati