Cá nhân tôi sử dụng Django để tạo biểu mẫu của mình. Tôi đã thực hiện các hình thức đa bước phức tạp, nơi có điều kiện bước bằng django.contrib.formtools.FormWizard
và sử dụng một factoryfunction để tạo ra các lớp Mẫu cho bước như thế này:
class SomeWizard(FormWizard):
def process_step(self, request, form, step):
if form.is_valid() and step == 0:
#compute step 2
Step2 = second_step_factory(form)
self.form_list[1] = Step2
Và bước nó với một placeholder khi instantiating Đối tượng thuật sĩ:
def some_form_view(request):
Step1 = first_step_factory(request)
placeholder = second_step_factory()
return SomeWizard([Step1, placeholder])(request)
Trong Django 1.4 FormWizard đã được replaced bằng cách triển khai khác, tôi chưa xem xét điều đó.
Nếu bạn muốn ngôn ngữ trung lập, có nhiều tùy chọn khai báo hơn, bạn có thể xem XForms. Hỗ trợ trình duyệt có vẻ hơi bị bỏ rơi, nhưng có XSLTs that will transform your XForms into HTML.
Nguồn
2012-06-20 07:23:46
Cảm ơn tất cả vì nỗ lực nhưng câu hỏi của tôi không thực sự được trả lời. Rất ít các giải pháp được cho phép cho một mô hình logic cơ bản cần thiết nhưng đúng hơn là các nhà xây dựng biểu mẫu - và sau đó logic được thêm vào. Tôi muốn một mô hình tất cả trong một. – Jonno
Bạn có thể hưởng lợi từ https://tallyfy.com - đó là công cụ xử lý dựa trên biểu mẫu duy nhất có phân nhánh có điều kiện mạnh mẽ cho các quy trình, được thực hiện lặp đi lặp lại. –