Django दस्तावेज के अनुसार, "ईमेल" फ़ील्ड वैकल्पिक है। मैं Django द्वारा भेजे गए इस डिफ़ॉल्ट व्यवहार को बदलना चाहता हूं।
मैंने मॉडल को कुछ कस्टम जोड़ने के लिए बढ़ा दिया हैखेतों, लेकिन फिर भी मैं इसे ओवरराइड करने में सक्षम नहीं हूं (तकनीकी सीमाओं के कारण)। मैंने उपयोगकर्ता मॉडल के साथ संबंधित मुद्दों के बारे में कुछ अन्य प्रश्न यहां देखा और वे आम तौर पर ईमेल फ़ील्ड की आवश्यकता के लिए पंजीकरण फॉर्म को उप-वर्गीकृत करने का सुझाव देते हैं।
हालांकि, आप व्यवस्थापक पक्ष से ऐसा नहीं कर सकते हैं। मेरे एप्लिकेशन में साइन अप फॉर्म नहीं है, लेकिन उपयोगकर्ताओं को व्यवस्थापक पैनल से जोड़ा जाना है।
अब तक मैं एक अच्छा समय के लिए googling रहा है औरऐसा लगता है कि यह बिल्कुल संभव नहीं है या मुझे इसे बदलने के लिए एक संपूर्ण मॉडल फिर से बनाना है, जो मेरे लिए इष्टतम समाधान की तरह नहीं लगता है।
क्या किसी के पास बेहतर तरीका है?
उत्तर:
जवाब के लिए 0 № 1अगर आप सिर्फ ईमेल फ़ील्ड बनाना चाहते हैंआवश्यक है, तो सबसे साफ तरीका कस्टम उपयोगकर्ता मॉडल बनाना है जो बिल्कुल आपके मूल उपयोगकर्ता मॉडल की तरह है, लेकिन ईमेल फ़ील्ड अद्वितीय के रूप में सेट है। Django पहले से ही एक है AbstractUser
कक्षा जो आपको चाहिए। आप अपना संशोधित कर सकते हैं User
इस तरह का मॉडल -
class MyUser(AbstractUser):
# your extra fields
परिवर्तन करने के बाद Django व्यवस्थापक पैनल से भी, जहां भी आप इसका उपयोग करते हैं, ईमेल फ़ील्ड को जरूरी रखेगा।