i can't import model "logdbevents" "core" application... here hierarchy of project:
1/var/www/arpaso (root of project) 2/core 3/signals 4/__init__.py 4/log_db_event.py 3/__init__.py 3/models.py 2/manage.py
it might circular reference, have read in other posts:
file "/var/www/arpaso/core/models.py", line 2, in <module> core.signals.log_db_event import save_handler, del_handler file "/var/www/arpaso/core/signals/log_db_event.py", line 1, in <module> core.models import logdbevents importerror: cannot import name logdbevents
if so, how fix it? here 2 files:
models.py:
from django.db import models core.signals.log_db_event import save_handler, del_handler django.db.models.signals import post_save, post_delete #q10 create model store database events class logdbevents(models.model): events= ( ('dc','database entry created'), ('dd','database entry deleted'), ('de','database entry edited'), ) event_time = models.datetimefield(auto_now_add=true) event_type = models.charfield(choices=events, max_length=2) info = models.textfield() #start listener insert or update queries post_save.connect(save_handler, dispatch_uid='post_save') #start listener delete queries post_delete.connect(del_handler, dispatch_uid='post_delete')
log_db_event.py:
from core.models import logdbevents #q10: saves signal database def log_handler (signal_type, sender, **kwargs): #do not save events logdbevents (otherwise unfinite calls!) if sender != logdbevents: logdbevents(event_type=signal_type, info="%s model changed new entry %s"%( sender.__name__, kwargs['instance']) ).save() #q10: create or add signal intercepted def save_handler(sender, **kwargs): if kwargs['created']: return log_handler ('dc', sender, **kwargs) else: return log_handler ('de', sender, **kwargs) #q10: delete signal intercepted def del_handler(sender, **kwargs): return log_handler ('dd', sender, **kwargs)
i ended using method:
log_db_event.py:
import core.models instance=core.models.logdbevents()
it works ;).