Tôi có mẫu đơn này:giá trị ban đầu cho lĩnh vực hình thức django lựa chọn bỏ qua
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])
Các lựa chọn có sẵn là:
E = 'e'
A = 'a'
SOURCES_CHOICES = (
(A, 'A'),
(E, 'E'),
)
Quan điểm:
form = UserUsesSourceForm(initial={"username":request.user.username, 'provider':SOURCES_CHOICES[1]})return render_to_response('update_datasource.html', context_instance=RequestContext(request, params))
Và mẫu:
<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>
Vấn đề là ngay cả khi giá trị ban đầu được đặt chính xác và tôi có thể kiểm tra nó trong gỡ lỗi (ví dụ: giá trị ban đầu của trường "nhà cung cấp" là bộ tôi muốn), html cuối cùng luôn hiển thị phần tử đầu tiên trong chọn hộp:
<select name="provider" id="id_provider">
<option value="A">A</option>
<option value="E">E</option>
</select>
..trong khi đó tôi mong muốn có tùy chọn "mặc định" hoặc "hoạt động". Xin lưu ý rằng trường tên người dùng được khởi tạo chính xác. Làm cách nào để tôi có thể điều tra thêm để tìm ra vấn đề ở đâu?
gì nếu bạn muốn tự động vượt qua các lựa chọn dựa trên args của xem? – radtek
Đó là một câu hỏi hay. đó là những gì tôi đã bị mắc kẹt vào ngày hôm nay. Bạn có giải pháp nào cho điều đó không? – user1159517