Tôi đang tạo đối tượng biểu mẫu tùy chỉnh ở Django có phương thức __init__ bị ghi đè. Mục đích của việc ghi đè phương thức này là tự động tạo các hộp thả xuống dựa trên các tham số mới.Django: Ghi đè __init__ cho Biểu mẫu tùy chỉnh
Ví dụ,
class TicketForm(forms.Form):
Type = Type.GetTicketTypeField()
def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None,
initial=None, label_suffix=':', empty_permitted=False,
ticket=None):
if ticket:
self.__class__.State = State.GetTicketStateField(ticket.Type)
super(forms.BaseForm, self).__init__(data=data, files=files,
auto_id=auto_id, prefix=prefix, initial=initial,
label_suffix=label_suffix, empty_permitted=empty_permitted)
Giải pháp này không hoạt động. Dường như các trường được tạo trước khi __init__ được gọi. Tôi cho rằng vấn đề này sẽ khá phổ biến. Điều gì sẽ là cách Django xử lý các lớp học của các vấn đề.