Các biểu mẫu này đang trưng bày chính xác đối diện hành vi mà tôi muốn.Các biểu mẫu của Django: yêu cầu trước tiên?
Quan điểm của tôi được thiết lập như thế này:
def post(request): # TODO: handle vehicle formset
VehicleFormSetFactory = formset_factory(VehicleForm, extra=1)
if request.POST:
vehicles_formset = VehicleFormSetFactory(request.POST)
else:
vehicles_formset = VehicleFormSetFactory()
Và mẫu của tôi trông như thế này:
<div id="vehicle_forms">
{{ vehicles_formset.management_form }}
{% for form in vehicles_formset.forms %}
<h4>Vehicle {{forloop.counter}}</h4>
<table>
{% include "form.html" %}
</table>
{% endfor %}
</div>
Bằng cách đó nó ban đầu chỉ tạo ra 1 hình thức, như tôi muốn. Nhưng tôi muốn có một hình thức được yêu cầu!
Khi tôi tự động thêm biểu mẫu trống bằng JavaScript và vehicles_formset.empty_form
tất cả các biểu mẫu bổ sung đó là bắt buộc, mà tôi không muốn.
Từ các tài liệu:
Các formset là đủ thông minh để bỏ qua các hình thức bổ sung mà không được thay đổi.
Đây là hành vi biểu mẫu đầu tiên được trưng bày (không phải những gì tôi muốn) nhưng không phải là hành vi mà các biểu mẫu bổ sung đang trưng bày (những gì tôi muốn).
Có một số thuộc tính tôi có thể thay đổi thành ít nhất là thực hiện một mẫu đơn không?
@ mpen mặc dù tôi đến trễ cho bữa tiệc, tôi đã tự hỏi làm thế nào để đi về một vấn đề hơi khác nhau mà tôi đang đối mặt với câu hỏi của tôi ở đây (https://stackoverflow.com/questions/44159559/need-to-have-a-required-and-optional-fields-in-django-formset) – dungu
@kedric Bạn đang hỏi anh chàng sai. Tôi đã không sử dụng Django kể từ ngay sau khi tôi đăng câu hỏi này. – mpen
ooh, Được rồi cảm ơn vì phản hồi – dungu