सामान्य रूप से अपने उत्तर खोजने के लिए django स्रोत ब्राउज़ करें (यह आश्चर्यजनक रूप से परिवर्तनीय, फ़ंक्शंस, कक्षाएं और तार्किक रूप से नामित फ़ाइलों के साथ पठनीय है)।
django/contrib/admin/templates/admin/delete_confirmation.html
को देखते हुए (Django 1.2.5 में), तो आपको 24 वीं लाइन है कि एक टेम्पलेट देखेंगे शामिल हैं:
<ul>{{ deleted_objects|unordered_list }}</ul>
आप
<p>{{ deleted_objects|count }} objects</p>
या
कहने के लिए इस बदलते हैं तो
{% if 100 < deleted_objects|count %}
<p>{{ deleted_objects|count }} objects</p>
{% else %}
<ul>{{ deleted_objects|unordered_list }}</ul>
{% endif %}
यह केवल हटाए गए ऑब्जेक्ट्स की गणना प्रदर्शित करेगा (यदि कई हटाए गए ऑब्जेक्ट्स हैं) ।
आप बड़े पैमाने पर हटाने को अधिक तेज़ी से करने के लिए SQL लेनदेन का उपयोग करने के लिए django/contrib/admin/templates/admin/actions.py
संपादन के साथ प्रयोग करना भी चाह सकते हैं। देखें: http://docs.djangoproject.com/en/dev/topics/db/transactions/
मूल रूप से action.py उचित क्वेरीसेट बनाकर काम करता है, सीधे क्वेरीसेट को हटाकर कॉल करता है, लेकिन इसे एक डीबी लेनदेन में समूहित नहीं करता है। नमूना स्क्लाइट डेटाबेस पर सरल समय परीक्षण करने से मैंने पाया कि लेनदेन के बिना ~ 150 ऑब्जेक्ट्स को हटाने से qs.delete()
और for obj in qs: obj.delete()
का उपयोग करके 13.4 सेकेंड का उपयोग करके 11.3 सेकेंड लग गए। लेनदेन का उपयोग करना (@transaction.commit_on_success
हटाने वाले कार्यों से पहले), वही आदेश केवल 0.35 सेकंड और 0.3 9 सेकेंड (लगभग 30 गुना तेज) लेते थे। लेनदेन का उपयोग करके अनुमोदित डेटाबेस अस्थायी रूप से लॉक कर सकता है, जो एक स्वीकार्य विकल्प नहीं हो सकता है।
django व्यवस्थापक को समझदारी से विस्तारित करने के लिए (आमतौर पर आप सीधे स्रोत को संपादित नहीं करना चाहते हैं, खासकर यदि अन्य उपयोगकर्ता एक ही फाइल का उपयोग कर रहे हैं या यदि आप कभी भी बाद में वापस लौटना चाहते हैं या अन्य django साइट्स चला रहे हैं एक ही मशीन) देखें: http://www.djangobook.com/en/1.0/chapter17/#cn35
स्रोत
2011-05-06 22:11:31
के लिए यह मदद के होंगे, लेकिन अन्य बड़ी hangup django.contrib.admin.actions.py जहां get_deleted_objects करने के लिए कॉल किया जाता है में है (लाइन 34 में django 1.4)। यहां ऑब्जेक्ट का पूर्ण पदानुक्रम टेम्पलेट में बाद के डिस्प्ले के लिए संकलित किया गया है। यह वह जगह है जहां मेरा कोड कम से कम लटक रहा था। उम्मीद है कि यह भी मदद करता है। – Rob