Django ठीक व्यवस्थापक बहुवचन


148

मैं नए देव django संस्करण में व्यवस्थापक साइट पर "श्रेणी" से "मॉडल" के लिए कुछ मॉडल नाम कैसे बदल सकता हूं? पुराने संस्करण में (व्हाटआउट एडमिन साइट्स और एडमिन मॉडल) आप बस ऐसा कर सकते हैं; http://www.the-dig.com/blog/post/customize-plural-name-django-admin/

हालाँकि - अब मेरे Modeladmin आधारित वर्ग के अंदर verbose_name_plural सेट करने से कुछ नहीं होता है। किसी को भी इसी मुद्दे को घेरना?


यह Django 1.1.1 में मेरे लिए काम करता है ... क्या आप सुनिश्चित हैं कि आप इसे मेटा नेस्टेड वर्ग के अंदर रख रहे हैं?
बचाया

हाँ, मैंने अभी सोचा था कि नए संस्करणों ने मॉडल के अंदर के मेटा क्लास से छुटकारा पा लिया। जाहिरा तौर पर नहीं - वे सिर्फ व्यवस्थापक वर्गों के साथ चीजों को और अधिक जटिल बना दिया ...
एंड्री Drozdyuk

जवाबों:


274

ठीक है, ऐसा लगता है कि मेटा क्लास दृष्टिकोण अभी भी काम करता है। तो अपने मॉडल के अंदर एक मेटा क्लास रखने के बाद भी चाल चलेंगे:

class Category(models.Model):
    class Meta:
        verbose_name_plural = "categories"

ध्यान दें कि हम यहां निम्न मामले का उपयोग करते हैं, क्योंकि django को स्मार्ट बनाने के लिए पर्याप्त है जब हमें इसकी आवश्यकता होती है।

मुझे यह विकल्प मॉडल-क्लास अजीब में सेटिंग करने के लिए मिल रहा है जैसा कि admin.py फ़ाइल के विपरीत है। यहाँ देव डॉक्स में वह स्थान है जहाँ इसका वर्णन किया गया है:
http://docs.djangoproject.com/en/dev/ref/models/options/#verbose-name-plural


20
मॉडल वर्ग में इसे सेट करने का विचार (व्यवस्थापक के बजाय) DRY के लिए उबलता है - सिर्फ इसलिए कि व्यवस्थापक केवल एक चीज है जो आपके मॉडल के बारे में इस जानकारी का उपयोग करता है इसका मतलब यह नहीं है कि यह हमेशा होता है हो। उम्मीद है कि अगर आपको अपने कोड में कहीं एक मॉडल के बहुवचन नाम की आवश्यकता है तो आप पहिया को फिर से आविष्कार करने के बजाय इस संपत्ति का उपयोग करेंगे।
सीबिर

11

इसके लिए आपको मॉडल के लिए मेटा क्लासेस जोड़ने की आवश्यकता है

class Category(models.Model):
    --- model field here ---
    class Meta: 
        verbose_name = "Category"
        verbose_name_plural = "Categories"

Apps.py में आपके मॉडल के लिए बोनस

class CategoryConfig(AppConfig):
    name = "Category"
    verbose_name = "Categories"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.