2012-02-28 10 views
5

मैं एक श्रेणी मॉडल प्राप्त करने की कोशिश कर रहा हूं जहां नाम unique=True, है लेकिन व्यावहारिक रूप से मैं अभी भी अलग-अलग मामलों के साथ एक ही श्रेणी का नाम जोड़ सकता हूं।डीजेंगो मॉडल में केस असंवेदनशील चरफील्ड

अर्थात मैं है एक वर्ग, खाद्य खाद्य कहा जाता है मैं अभी भी भोजन, खाद्य, खाद्य जोड़ने के लिए सक्षम हूँ

उनके इसके पीछे किसी भी दर्शन है? या यह प्रगति पर एक काम है।

असली दुनिया में कारण अगर मैं श्रेणी भोजन के बारे में सोचता हूं, तो यह हमेशा भोजन होगा, इससे कोई फर्क नहीं पड़ता कि उसने खुद का उल्लेख करने के लिए क्या उपयोग किया है।

इसे देखने के लिए अग्रिम धन्यवाद।

उत्तर

14

अपने ही सवाल का जवाब करने के लिए। इसलिए मैं

class Category(models.Model): 
    name = models.CharField(max_length=200, unique=True) 

    def clean(self): 
     self.name = self.name.capitalize() 

जोड़ा यह पहले अक्षर है, जो तब save विधि है, जो त्रुटि को बढ़ाने के लिए validate_unique प्रणाली को बुलाती है द्वारा नियंत्रित किया जाता को बड़े अक्षरों में है।

+0

यह मेरे लिए काफी उपयोगी है। धन्यवाद .. :) – suhailvs

+0

2017: बहुत अच्छी तरह से काम करता है! – zerohedge

-1

कॉलम को केस-असंवेदनशील संयोजन में सेट करना इसे ठीक करना चाहिए। आपको इसे SQL स्तर पर करने की आवश्यकता हो सकती है।

मैं पाया है मैं अपने मॉडल पर साफ विधि हो सकता है:

+1

क्या आपका मतलब "केस-संवेदी" में कॉलम सेट करना है? सवाल यह है कि Django में यह कैसे करें। – Sarang

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