Динамически созданные поля формы Django отсутствуют в очищенных_данныхPython

Программы на Python
Anonymous
Динамически созданные поля формы Django отсутствуют в очищенных_данных

Сообщение Anonymous »

Я пытаюсь реализовать динамические поля в ModelForm с помощью запросов AJAX.
У меня есть настраиваемое поле camera_num как IntegerField. Как только пользователь выбирает значение, AJAX передает значение поля camera_num в ModelForm с помощью kwargs и генерирует form.ModelChoiceField с именами camera_{number ("camera_1", "camera_2" .. . "camera_3").
Однако при отправке формы form.data содержит все "камеры" (скажем, {"camera_1": [1], "camera_2": [2]) ), тогда как form.cleaned_data содержит только одну камеру ("camera_1").
class ConfigurationForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
cameras_qty = kwargs.pop('cameras_qty', 1)
super(ConfigurationForm, self).__init__(*args, **kwargs)

if cameras_qty:
for camera_num in range(1, cameras_qty+1):
self.fields[f"camera_{camera_num}"] = forms.ModelChoiceField(
label=f"Camera {camera_num}",
queryset=models.Camera.objects.all()
)

cameras_num = forms.IntegerField(
widget=forms.Select(choices=[(i,i) for i in range(1, 4)]),
initial=1
)


Подробнее здесь: https://stackoverflow.com/questions/789 ... eaned-data

Вернуться в «Python»