मैं इस फार्म है:प्रारंभिक मूल्य को नजरअंदाज कर दिया
class UserUsesSourceForm(forms.Form):
# some fields here
username = forms.CharField(label=("Username"), max_length=30, help_text = ("Required"))
provider = forms.ChoiceField(widget=forms.Select(), choices=SOURCES_CHOICES, initial=SOURCES_CHOICES[1])
उपलब्ध विकल्प हैं:
E = 'e'
A = 'a'
SOURCES_CHOICES = (
(A, 'A'),
(E, 'E'),
)
दृश्य:
form = UserUsesSourceForm(initial={"username":request.user.username, 'provider':SOURCES_CHOICES[1]})return render_to_response('update_datasource.html', context_instance=RequestContext(request, params))
और टेम्पलेट:
<form action="" method="post">
{% csrf_token %}
{% if form.non_field_errors %}
<p>
{% for error in form.non_field_errors %}
<div class="text-error">{{ error|escape }}</div>
{% endfor %}
</p>
{% endif %}
<div class="control-group">
<label class="control-label" for="id_provider">Data source</label>
<div class="controls">
{{form.provider}}
</div>
</div>
</form>
समस्या यह है कि प्रारंभिक मान सही ढंग से सेट किया गया है, और मैं इसे डीबग में जांच सकता हूं (यानी, प्रपत्र "प्रदाता" फ़ील्ड प्रारंभिक मान टुपल चाहता है), अंतिम HTML हमेशा पहले तत्व को दिखाता है चयन बॉक्स:
<select name="provider" id="id_provider">
<option value="A">A</option>
<option value="E">E</option>
</select>
.. जबकि मुझे उम्मीद है कि यह "डिफ़ॉल्ट" या "सक्रिय" विकल्प होगा। कृपया ध्यान दें कि उपयोगकर्ता नाम फ़ील्ड सही ढंग से प्रारंभ किया गया है। समस्या का पता लगाने के लिए मैं आगे की जांच कैसे कर सकता हूं?
क्या होगा यदि आप गतिशील दृश्य की आर्ग के आधार पर विकल्प पास करना चाहते हैं? – radtek
यह एक अच्छा सवाल है। यही वह है जो मैं आज में फंस गया। क्या आपके पास इसका कोई समाधान है? – user1159517