मेरी models.py में से अजवाइन के माध्यम से एक कार्य निष्पादितDjango एक मॉडल
-
:
from celery.decorators import task
from core.models import Image
@task()
def create_thumbnail(image_id):
ImageObj = Image.objects.get(id=image_id)
# other stuff here
यह निम्न लौटा रहा है
त्रुटि गायब हो अगर मैं tasks.py
में from core.models import Image
बाहर टिप्पणी के बाद से Image
यहाँ में कोई मतलब नहीं है लेकिन इस स्पष्ट रूप से एक समस्या का कारण होगा आयात नहीं कर सकते। मैंने इसे create_thumbnail
के अंदर आयात करने का प्रयास किया है, हालांकि यह अभी भी Image
को पहचान नहीं पाएगा।
मैंने कहीं पढ़ा है कि आमतौर पर ऑब्जेक्ट को किसी कार्य के लिए तर्क के रूप में पारित किया जा सकता है और यह मेरी समस्या का समाधान करेगा। हालांकि, एक दोस्त ने मुझे एक बार कहा था कि इसे एक खरगोश एमक्यू संदेश में जितना संभव हो उतना डेटा भेजने के लिए सबसे अच्छा अभ्यास माना जाता है, ताकि यह प्राप्त किया जा सके कि मैं केवल छवि आईडी पास करने की कोशिश कर रहा हूं और फिर इसे फिर से कार्य में पुनः प्राप्त कर रहा हूं।
1) क्या मैं सबसे अच्छा अभ्यास करने की कोशिश कर रहा हूं? यदि हां, तो मैं इसे कैसे काम करूं?
2) मैंने वेब के चारों ओर मिले सभी उदाहरणों में ध्यान दिया है, वे कार्य को एक दृश्य से निष्पादित करते हैं और मॉडल से कभी नहीं। जब भी कोई नई छवि अपलोड की जाती है, तो मैं थंबनेल बनाने की कोशिश कर रहा हूं, मैं अपने फॉर्म/व्यू में create_thumbnail को कॉल नहीं करना चाहता हूं। इसके बारे में कोई विचार? एक मॉडल से एक कार्य निष्पादित या अनुशंसित एक सामान्य अभ्यास है?
मैंने वास्तव में अनुच्छेद की सराहना की" परिपत्र आयात को खत्म करने के लिए, आपको इस बारे में सोचना चाहिए कि आयात किस तरह से होना चाहिए ... "। धन्यवाद। – pawelmech