Django 2.1 - Multiple object mixins

एकाधिक वस्तु मिश्रण




django

एकाधिक वस्तु मिश्रण

MultipleObjectMixin

class django.views.generic.list.MultipleObjectMixin

एक मिश्रण जिसे वस्तुओं की सूची प्रदर्शित करने के लिए इस्तेमाल किया जा सकता है।

यदि paginate_by निर्दिष्ट किया जाता है, तो Django इसके द्वारा लौटाए गए परिणामों को पृष्ठांकित करेगा। आप URL में पृष्ठ संख्या दो में से किसी एक तरीके से निर्दिष्ट कर सकते हैं:

  • URLconf में page पैरामीटर का उपयोग करें। उदाहरण के लिए, यह वही है जो आपका URLconf दिखता है:

    path('objects/page<int:page>/', PaginatedView.as_view()),
    
  • पृष्ठ संख्या-स्ट्रिंग पैरामीटर के माध्यम से पृष्ठ संख्या पास करें। उदाहरण के लिए, एक URL इस तरह दिखेगा:

    /objects/?page=3
    

ये मान और सूचियाँ 1-आधारित हैं, न कि 0-आधारित, इसलिए पहले पृष्ठ को पृष्ठ 1 रूप में दर्शाया जाएगा।

पृष्ठ पर अंक लगाना के लिए, पृष्ठांकन दस्तावेज़ पढ़ें।

एक विशेष मामले के रूप में, आपको page मान के रूप में last उपयोग करने की अनुमति है:

/objects/?page=last

यह आपको पहले परिणाम के अंतिम पृष्ठ तक पहुंचने की अनुमति देता है, यह निर्धारित करने के लिए कि कितने पृष्ठ हैं।

ध्यान दें कि page या तो मान्य पृष्ठ संख्या या last मान होना चाहिए; page लिए किसी भी अन्य मूल्य में 404 त्रुटि होगी।

का विस्तार

तरीके और गुण

allow_empty

एक बूलियन निर्दिष्ट करता है कि यदि कोई वस्तु उपलब्ध नहीं है तो पृष्ठ प्रदर्शित करना है या नहीं। यदि यह False और कोई वस्तु उपलब्ध नहीं है, तो दृश्य खाली पृष्ठ प्रदर्शित करने के बजाय 404 बढ़ाएगा। डिफ़ॉल्ट रूप से, यह True

model

वह मॉडल जो इस दृश्य को प्रदर्शित करेगा, उसके लिए डेटा प्रदर्शित करेगा। निर्दिष्ट करने वाला model = Foo प्रभावी रूप से queryset = Foo.objects.all() को निर्दिष्ट करने के समान है, जहां objects Foo के डिफ़ॉल्ट प्रबंधक के लिए खड़े होते हैं।

queryset

एक QuerySet जो वस्तुओं का प्रतिनिधित्व करता है। यदि प्रदान किया जाता है, तो queryset का मान model लिए प्रदान किया गया मान queryset देता model

चेतावनी

queryset एक उत्परिवर्तनीय मूल्य के साथ एक वर्गीय विशेषता है इसलिए इसे सीधे उपयोग करते समय सावधानी बरतनी चाहिए। इसका उपयोग करने से पहले, या तो इसकी all() विधि को कॉल करें या इसे get_queryset() साथ पुनर्प्राप्त करें जो पर्दे के पीछे क्लोनिंग का ख्याल रखता है।

ordering

एक स्ट्रिंग या स्ट्रिंग की सूची जो queryset को लागू करने के लिए आदेश को निर्दिष्ट करती है। मान्य मान समान हैं जो order_by()

paginate_by

एक पूर्णांक निर्दिष्ट करता है कि प्रति पृष्ठ कितनी वस्तुओं को प्रदर्शित किया जाना चाहिए। यदि यह दिया जाता है, तो दृश्य प्रति पृष्ठ paginate_by ऑब्जेक्ट्स के साथ ऑब्जेक्ट्स को paginate_by करेगा। दृश्य या तो page क्वेरी स्ट्रिंग पैरामीटर ( request.GET माध्यम से) या URLconf में निर्दिष्ट page चर की अपेक्षा करेगा।

paginate_orphans

एक पूर्णांक "अतिप्रवाह" वस्तुओं की संख्या निर्दिष्ट करता है जिसमें अंतिम पृष्ठ हो सकता है। यह अंतिम पृष्ठ पर paginate_by सीमा को paginate_by तक बढ़ाता है, ताकि अंतिम पृष्ठ को बहुत कम संख्या में ऑब्जेक्ट रखने से रोका जा सके।

page_kwarg

पृष्ठ पैरामीटर के लिए उपयोग करने के लिए नाम निर्दिष्ट करने वाली एक स्ट्रिंग। दृश्य इस पैरामीटर को क्वेरी स्ट्रिंग पैरामीटर ( request.GET माध्यम से) या URLconf में निर्दिष्ट kwarg चर के रूप में उपलब्ध होने की उम्मीद करेगा। page डिफ़ॉल्ट।

paginator_class

पेजिनेटर वर्ग का उपयोग पेजिनेशन के लिए किया जाता है। डिफ़ॉल्ट रूप से, django.core.paginator.Paginator का उपयोग किया जाता है। यदि कस्टम पेजिनेटर वर्ग में django.core.paginator.Paginator के समान निर्माता इंटरफ़ेस नहीं है, तो आपको get_paginator() लिए एक कार्यान्वयन प्रदान करना होगा।

context_object_name

संदर्भ में उपयोग करने के लिए चर का नाम निर्दिष्ट करता है।

get_queryset()

इस दृश्य के लिए आइटम की सूची प्राप्त करें। यह एक चलने योग्य होना चाहिए और एक क्वेरीसेट (जिसमें क्वेरी-विशिष्ट व्यवहार सक्षम किया जाएगा) हो सकता है।

get_ordering()

एक स्ट्रिंग (या स्ट्रिंग्स के चलने योग्य) लौटाता है जो उस ऑर्डर को परिभाषित करता है जिसे queryset लागू किया जाएगा।

डिफ़ॉल्ट रूप से ordering है।

paginate_queryset(queryset, page_size)

एक 4-युक्त युक्त रिटर्न देता है ( paginator , page , object_list , is_paginated )।

आकार page_size पृष्ठों में page_size को पृष्ठांकित करके निर्मित किया गया। यदि अनुरोध में page तर्क है, तो कैप्चर किए गए URL तर्क के रूप में या GET तर्क के रूप में, object_list उस पृष्ठ से ऑब्जेक्ट के अनुरूप होगा।

get_paginate_by(queryset)

द्वारा किसी None पृष्ठ पर अंक लगाना, या None अंकन के लिए कोई None आइटम नहीं लौटाता है। डिफ़ॉल्ट रूप से यह बस paginate_by का मान लौटाता है।

get_paginator(queryset, per_page, orphans=0, allow_empty_first_page=True)

इस दृश्य का उपयोग करने के लिए पेजिनेटर का एक उदाहरण देता है। डिफ़ॉल्ट रूप से, paginator_class का एक उदाहरण paginator_class

get_paginate_orphans()

एक पूर्णांक "अतिप्रवाह" वस्तुओं की संख्या निर्दिष्ट करता है जिसमें अंतिम पृष्ठ हो सकता है। डिफ़ॉल्ट रूप से यह बस paginate_orphans का मान लौटाता है।

get_allow_empty()

यदि कोई वस्तु उपलब्ध नहीं है, तो पृष्ठ प्रदर्शित करने के लिए एक बूलियन निर्दिष्ट करें। यदि यह विधि False और कोई ऑब्जेक्ट उपलब्ध नहीं है, तो दृश्य खाली पृष्ठ प्रदर्शित करने के बजाय 404 बढ़ाएगा। डिफ़ॉल्ट रूप से, यह True

get_context_object_name(object_list)

संदर्भ चर नाम लौटाएं जिसका उपयोग डेटा की सूची में किया जाएगा जिसमें यह दृश्य हेरफेर कर रहा है। यदि object_list Django ऑब्जेक्ट्स का एक model_name है और model_name सेट नहीं है, तो संदर्भ नाम उस मॉडल का model_name होगा, जिसे model_name से बनाया गया है, जिसमें पोस्टफिक्स '_list' संलग्न है। उदाहरण के लिए, मॉडल Article article_list नाम का एक संदर्भ ऑब्जेक्ट होगा।

get_context_data(**kwargs)

वस्तुओं की सूची प्रदर्शित करने के लिए संदर्भ डेटा लौटाता है।

प्रसंग

  • object_list : उन वस्तुओं की सूची, जिन्हें यह दृश्य प्रदर्शित कर रहा है। यदि context_object_name निर्दिष्ट किया गया है, तो उस चर को भी object_list के समान मान के साथ संदर्भ में सेट किया जाएगा।
  • is_paginated : परिणाम प्रस्तुत करने वाले एक बूलियन का प्रतिनिधित्व किया जाता है। विशेष रूप से, यह False सेट है यदि कोई पृष्ठ आकार निर्दिष्ट नहीं किया गया है, या यदि उपलब्ध ऑब्जेक्ट कई पृष्ठों को नहीं फैलाते हैं।
  • django.core.paginator.Paginator : django.core.paginator.Paginator का एक उदाहरण। यदि पृष्ठ पृष्ठबद्ध नहीं है, तो यह संदर्भ चर None होगा।
  • page_obj : page_obj एक उदाहरण। यदि पृष्ठ पृष्ठबद्ध नहीं है, तो यह संदर्भ चर None होगा।

MultipleObjectTemplateResponseMixin

class django.views.generic.list.MultipleObjectTemplateResponseMixin

एक मिश्रित वर्ग जो उन विचारों के लिए टेम्पलेट-आधारित प्रतिक्रिया प्रदान करता है जो ऑब्जेक्ट इंस्टेंस की सूची पर काम करते हैं। यह देखने की आवश्यकता है कि इसे जिस दृश्य के साथ मिलाया गया है वह self.object_list प्रदान करता है, ऑब्जेक्ट इंस्टेंस की सूची जो दृश्य पर काम कर रही है। self.object_list हो सकता है, लेकिन एक QuerySet होना आवश्यक नहीं है।

का विस्तार

तरीके और गुण

template_name_suffix

ऑटो-जेनरेट किए गए कैंडिडेट के नाम को जोड़ने के लिए प्रत्यय। डिफ़ॉल्ट प्रत्यय _list

get_template_names()

उम्मीदवार टेम्पलेट नामों की सूची लौटाता है। निम्न सूची लौटाता है:

  • देखने पर (यदि प्रदान की गई है) template_name का मूल्य
  • <app_label>/<model_name><template_name_suffix>.html