2013-07-08 4 views
7

Haystack

haystack_signal_processor consente di utilizzare un processore di segnale personalizzato per avviare l'indice per alcuni modelli.come risolvere l'importazione circolare che coinvolge il pagliaio?

ho nel mio settings.py

HAYSTACK_SIGNAL_PROCESSOR='my_app.signals.MySignalProcessor'
(questa importazioni signals.py quindi questo è impostazioni -.> Segnali)

poi dentro la mia signals.py ho
from my_app.models import my_model # per collegare my_model
E my_app.models.py ha from django.conf import settings
(segnali -> modelli -> impostazioni)

Come posso risolvere questa importazione circolare?

risposta

5

tratto da https://github.com/PitonFoundation/atlas/commit/cc0abcb

Invece di importare il modello sulla parte superiore del file signals.py, importare i modelli nei metodi della vostra abitudine SignalProcessor utilizzando get_model:

from django.db.models.loading import get_model 

class MySignalProcessor(signals.BaseSignalProcessor): 
    def setup(self): 
     MyModel = get_model('myApp', 'MyModel') 
     models.signals.post_save.connect(self.handle_save, sender=MyModel)