किसी बिंदु पर मुझे "disabled"
प्रदर्शित करने की आवश्यकता है (disabled="disabled"
विशेषता द्वारा ग्रिड आउट) "select"
प्रकार का इनपुट। जैसा कि मानक (xhtml और html4) में निर्दिष्ट है, "select"
के इनपुट "readonly"
विशेषता नहीं हो सकते हैं। ध्यान दें कि यह केवल प्रस्तुति उद्देश्यों के लिए है, वास्तविक मूल्य POST में समाप्त होना चाहिए। तो यहाँ मैं क्या कर (Django में प्रपत्र घोषणा का एक हिस्सा के हवाले से) है:डीजेगो फॉर्म: सत्यापन के बीच एक अक्षम क्षेत्र बना रहता है
from django import forms
_choices = ['to be', 'not to be']
class SomeForm(forms.Form):
field = forms.ChoiceField(choices=[(item, item) for item in _choices],
widget=forms.HiddenInput()) # the real field
mock_field = forms.ChoiceField(required=False, # doesn't get submitted
choices=[(item, item) for item in _choices],
label="The question",
widget=forms.Select(attrs={'disabled':'disabled'}))
तो यह इस तरह आरंभ नहीं हो जाता:
initial_val = 'to be'
form = SomeForm(ititial={'field':initial_val,
'mock_field':initial_val})
और सब कुछ ठीक है। खैर, जब तक फॉर्म मान्य नहीं हो जाता है और अन्य फ़ील्ड में से एक सत्यापन को विफल करता है। जब ऐसा होता है, तो फॉर्म को पुनः लोड किया जाता है और मान संरक्षित होते हैं, लेकिन "mock_field" में से एक नहीं - यह कभी सबमिट नहीं हुआ (यह अक्षम है)। तो यह संरक्षित नहीं है। हालांकि यह डेटा अखंडता को प्रभावित नहीं करता है, यह अभी भी प्रस्तुति के अनुसार इतना अच्छा नहीं है।
क्या उस क्षेत्र को संरक्षित करने का कोई तरीका है, जितना संभव हो उतना हैकरी? यह फॉर्म django.contrib.formtools.FormWizard
का हिस्सा है और प्रारंभिक मान (और कुछ फ़ील्ड) गतिशील रूप से उत्पन्न होते हैं। असल में, बहुत सारी चीज़ें पहले से चल रही हैं, अगर यह संभव था कि चीजों को खत्म न करें तो यह बहुत अच्छा होगा।
खैर, मैं, निश्चित रूप से, जानता हूं कि अक्षम फ़ील्ड पोस्ट नहीं किए गए हैं (क्योंकि केवल सफल नियंत्रण पोस्ट किए जाते हैं और अक्षम फ़ील्ड कभी सफल नहीं होते हैं)। मैं अब आपके दृष्टिकोण का परीक्षण करने जा रहा हूं। यह काफी दृढ़ दिखता है। – shylent