के भीतर से Django फॉर्म विजेट का प्रकार प्राप्त करें मैं एक फॉर्म के फ़ील्ड के माध्यम से पुनरावृत्ति कर रहा हूं और कुछ क्षेत्रों के लिए मैं थोड़ा अलग लेआउट चाहता हूं, जिसमें HTML को बदलना आवश्यक है।टेम्पलेट
यह सही करने के लिए, मुझे बस विजेट प्रकार जानने की आवश्यकता है। इसका वर्ग नाम या कुछ समान है। मानक पायथन में, यह आसान है! field.field.widget.__class__.__name__
दुर्भाग्यवश, आपको टेम्पलेट्स में अंडरस्कोर चर तक पहुंच की अनुमति नहीं है। बढ़िया!
आप कर सकते हैं परीक्षण field.field.widget.input_type
लेकिन पाठ/पासवर्ड <input ../>
प्रकार के लिए यह केवल काम करता है। मुझे और अधिक संकल्प की जरूरत है कि।
मेरे लिए, हालांकि यह मुश्किल हो सकता है, यह टेम्पलेट स्तर पर ऐसा करने के लिए सबसे अधिक समझ में आता है। मैंने कोड का थोड़ा सा आउटसोर्स किया है जो फ़ील्ड के लिए HTML को फ़ील्ड-लूप में शामिल एक अलग टेम्पलेट में संभालता है। इसका मतलब है कि यह ModelForm
एस और मानक Form
एस (कुछ ऐसा सच नहीं होगा यदि मैंने मध्यस्थ फॉर्म वर्ग लिखा हो)।
यदि आप एक सार्वभौमिक दृष्टिकोण देख सकते हैं जिसके लिए मुझे 20-विषम रूपों को संपादित करने की आवश्यकता नहीं है, तो मुझे भी बताएं!
प्रासंगिक बग रिपोर्ट या सुविधा अनुरोध: https://code.djangoproject.com/ticket/13009 – Flimm