2012-01-10 5 views
5

का उपयोग कर बचाने के लिए दो बार प्राप्त किया:Post_save मैं अलग-अलग फ़ाइलों में अपने मॉडल है यहाँ तक कि जब dispatch_uid

models 
\ 
|__init__.py 
|event.py 
|a_thing.py 
|... 

__init__.py मैं एक मॉडल के आयात में और उसके बाद मैं संकेत से निपटने की स्थापना की।

Event मॉडल के लिए मुझे कुछ post_save हैंडलिंग की आवश्यकता है।

from django.db.models.signals import post_save 
from django.dispatch import receiver 

from core.models.event import Event 

# Event 
@receiver(post_save, sender = Event) 
def event_post_save(sender, dispatch_uid = 'nope', **kwargs): 
    print kwargs.get('created') 
    print '------' 

जब भी मैं सांत्वना post_save में संदेश एक बार छपा है के माध्यम से एक Event बचाने लेकिन जब भी मैं व्यवस्थापक इंटरफ़ेस का उपयोग यह दो बार प्रिंट हो:

यह __init__.py का छोटा संस्करण है। ऐसा इसलिए हो सकता है क्योंकि मैं admin.py के अंदर मॉडल आयात करता हूं।

क्या इसके लिए कोई कामकाज है ताकि मैं post_save बिना दो बार गोलीबारी के बिना एडमिन इंटरफ़ेस से ईवेंट ऑब्जेक्ट्स को सहेज सकूं?

उत्तर

0

मैं इसे अपने संकेत '__init__.py बजाय मॉडल' __init__.py

4

यह शायद Django/पायथन आयात मूर्खता से है विचारों को निपटने चलती ठीक करने के लिए कामयाब रहे। आपको dispatch_uid की आवश्यकता है, लेकिन मुझे लगता है कि इसे सजावटी के लिए तर्क होना चाहिए, न कि हैंडलर स्वयं।

संबंधित मुद्दे