나는이 같은 __init__
기능에 self.fields
에 추가되는 복수의 동적 필드 (더 클래스 속성)을 가진 형태로 만들어 넣 형태 : 이제장고 : 동적 필드
class CustomForm(django.forms.Form):
def __init__(dynamic_fields, *args, **kwargs):
super(CustomForm, self).__init__(*args, **kwargs)
for name, field in dynamic_fields.items():
self.fields[name] = field
dynamic_fields = {'val1': IntegerField(), 'val2': FloatField()}
CustomForm(dynamic_fields)
을 나는 방법을 모른다 POST
요청 후에 양식을로드하십시오. 일반적으로, 내가 좋아하는 일을 할 것입니다 :
custom_form = CustomForm(request.POST)
if custom_form.is_valid():
data = custom_form.cleaned_data
...
그러나 필드가 super
가 호출 될 때 양식을 알 수없는, 나는 수동으로 나중에 필드를로드하는 방법을 모른다
Form
클래스의
__init__
함수와 유사
Form
클래스에서 불과 설정 데이터 속성에 근무 나를 위해
class CustomForm(django.forms.Form):
def __init__(dynamic_fields, *args, **kwargs):
self.base_fields.update(dynamic_fields)
super(CustomForm, self).__init__(*args, **kwargs)
dynamic_fields = {'val1': IntegerField(), 'val2': FloatField()}
CustomForm(dynamic_fields)
필드 키는 항상 동일한 필드 유형을 가리 킵니까? – grrrrrr
아니, 모든 유효한 장고 필드 형식의 필드 형식이 될 수 – Henhuy